c# - 如何使用 C# 连接到 MS Access 文件 (mdb)?

标签 c# ms-access oledb

我正在尝试连接到一个 mdb 文件,我知道我需要 Microsoft.OLEDB.JET.4.0 数据提供程序。不幸的是,我没有在(大学)机器上安装它。 因为,他们不提供那个提供者,我相信应该有办法解决。

如何在没有 Microsoft.OLEDB.JET.4.0 的情况下连接到文件,或者有其他选择吗?

我有以下供应商:

Available Ole DB providers

我已尝试使用 OLE DB Provider for Microsoft Directory Services,在测试连接时,我得到“测试成功但提供程序未接受某些设置”。我获取了该字符串并使用了它,但我得到了 ADsDSOObject' failed with no error message available,结果代码:DB_E_ERRORSINCOMMAND(0x80040E14)

最佳答案

最简单的连接方式是使用像这样的代码通过 OdbcConnection

using System.Data.Odbc;

using(OdbcConnection myConnection = new OdbcConnection())
{
    myConnection.ConnectionString = myConnectionString;
    myConnection.Open();

    //execute queries, etc

}

myConnectionString 是这样的

myConnectionString = @"Driver={Microsoft Access Driver (*.mdb)};" + 
"Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;

参见 ConnectionStrings

或者,您可以创建一个 DSN,然后在您的连接字符串中使用该 DSN

  • 打开控制面板 - 管理工具 - ODBC 数据源 经理
  • 转到系统 DSN 页面并添加新的 DSN
  • 选择 Microsoft Access Driver (*.mdb) 并按 END
  • 设置 DSN 的名称(为此示例选择 MyDSN)
  • 选择要使用的数据库
  • 尝试压缩或恢复命令以查看连接是否有效

现在你的connectionString可以这样写了

myConnectionString = "DSN=myDSN;"

关于c# - 如何使用 C# 连接到 MS Access 文件 (mdb)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10374808/

相关文章:

c# - 使用 MVC 4 和 Entity Framework 6 访问大型数据库的最佳方法是什么

c# - 禁用计时器 .. 为什么我不能?

ms-access - 将整个 MS Access 数据库导出为 CSV

sql - OpenRecordSet 的数据类型不匹配错误

c# - 通过网络浏览器打开 .xls/.xlsx 文件并使其对用户可编辑

sql - OLEDB 命名参数和分组依据 : "?" won't work

oledb - Jet OLEDB :Transaction Commit Mode and Jet OLEDB:User Commit Sync? 有什么区别

c# - 如果派生类没有覆盖方法,应该调用哪个版本?

c# - 如何在 C# 中查找当前时间为 long?

sql - “CREATE TABLE”生成运行时错误 '3290'