【问题标题】:How to open connection with Microsoft Access database in C#如何在 C# 中打开与 Microsoft Access 数据库的连接
【发布时间】:2012-12-11 01:42:54
【问题描述】:

我正在使用 Microsoft Access 创建我的数据库。这是我的代码:

static string Constr = "Provider=Microsoft.Jet.OLEDB.4.0;" 
                     + "Data Source = MyData.accdb";
OleDbConnection Conn = new OleDbConnection(Constr);
DataSet DataSet1 = new DataSet();
string SQLstr = "Select * from Tabel";
OleDbDataAdapter DataAdapter1;
Conn.Open();

我遇到了这个异常:

System.Data.dll 中出现“System.Data.OleDb.OleDbException”类型的未处理异常

附加信息:无法识别的数据库格式

【问题讨论】:

标签: c# c#-4.0 ms-access database-connection


【解决方案1】:

您正在尝试使用只能理解使用 Access 2003 创建的 MDB 文件的 OleDb 提供程序打开使用 Access 2007/2010 (accdb) 创建的 Access 数据库

要使用的提供程序是Microsoft.ACE.OleDB.12.0,它应该已经安装了最新版本的 Office。

或者,您可以从Microsoft Access Database Engine下载适当的位
请注意下载适合您使用的平台(x86 或 x64)的版本。

这就是要使用的连接字符串

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=MyData.accdb";

注意:请记住,如果您安装了 Office,则相应的提供程序具有相同的 Office 位数,因此 Office 64 位附带 64 位版本的 ACE,32 位版本相同。这种情况在应用程序的部署中提出了一个非常困难的问题。您需要使用相同的位数编译您的应用程序,否则您将无法使用已安装的提供程序。 (或者卸载不兼容的 Office 版本并重新安装兼容的版本。当然,如果您应该能够说服您的客户 Office 是不兼容的应用程序 :-)

【讨论】:

  • 我已将字符串编辑为 static string Constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=MyData.accdb"; 我收到此异常 An unhandled exception of type 'System.InvalidOperationException' occurred in System.Data.dll Additional information: The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-17
  • 2011-03-18
  • 2022-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多