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

ميد*_* حر 7 c# ms-access database-connection c#-4.0

我正在使用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();
Run Code Online (Sandbox Code Playgroud)

我得到了这个例外:

System.Data.dll中发生了未处理的"System.Data.OleDb.OleDbException"类型异常

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

Ste*_*eve 7

您正尝试使用只能了解使用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";
Run Code Online (Sandbox Code Playgroud)

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