如何在C#中打开与Microsoft Access数据库的连接

我正在使用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”类型exception

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

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

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

或者,您可以从Microsoft Access数据库引擎下载相应的位
只需注意下载适用于您使用的平台(x86或x64)的版本。

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

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

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