如何执行Access数据库功能?

sams2017

新成员
已加入
2018年2月7日
留言内容
2
编程经验
1-3
大家好,

我今天加入,我是.net的初学者。

使用导入规范通过代码导入csv文件以访问数据库,任何帮助

我已经在Access数据库(.mdb文件)中编写了函数

打开访问数据库-数据库工具-Visual Basic-创建的模块(模块名称Load)

子Import_CSV()
Dim strFile As String'文件名
DoCmd.TransferText acImportDelimi,OPS_Import_Specs,_
"Raw Data", strPath &strFileList(intFile),-1
结束子

如何在c#中执行此函数,以便c#函数将返回成功或失败。

提前致谢。
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,466
位置
悉尼,澳大利亚
编程经验
10+
除了将Access Access用作直接数据库外,我从没有真正做过任何事情,因此我不是专家。如果在Access中编写一些SQL,可以直接在该SQL中调用该函数吗?例如。
C#:
SELECT Import_CSV()
如果是这样,那正是使用C#中的ADO.NET代码所做的。
 

sams2017

新成员
已加入
2018年2月7日
留言内容
2
编程经验
1-3
最终的工作解决方案。
在访问数据库创建的模块中编写以下代码。

C#:
option Compare 数据库
Sub Import_CSV(ByVal strFile As String)
'Dim strFile As String'文件名
DoCmd.TransferText acImportDelimi,OPS_Import_Specs,_
    "tblDetail", strFile, -1
End Sub
在C#控制台应用程序中:
添加参考:<pre>Microsoft.Office.Interop.Access</pre>右键单击属性"Embed Interop Types"更改为False。
用C#编写的函数来调用Access数据库过程/ function。
public static int RunAccessData()
        {
 Microsoft.Office.Interop.Access.Application appAccess = null;
                appAccess = new Microsoft.Office.Interop.Access.ApplicationClass();
                string strFilePath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"";
                Logger.WriteMessage("FilePath" + strFilePath);
                strFileName = WebConfig.GetSetting("InFileName");
                Logger.WriteMessage("FileName" + strFileName);
                strFilePathnName = strFilePath + strFileName;
                Logger.WriteMessage("FilePath and FileName" + strFilePathnName);
                appAccess.OpenCurrentDatabase("access database path here", false, null);
                object oMissing = System.Reflection.Missing.Value;
                object rt = appAccess.Run("Import_CSV", strFilePathnName);
                appAccess.Quit(Microsoft.Office.Interop.Access.AcQuitOption.acQuitSaveNone);
}
因此,现在我可以调用访问方法并使用importspec成功导入数据。
感谢你的支持。
 
最佳 底部