- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 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();
我遇到了这个异常:
An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll
Additional information: Unrecognized database format
最佳答案
您正在尝试使用只能理解使用 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 相同的位数,因此 64 位 Office 附带 64 位版本的 ACE,32 位版本也是如此。这种情况给您的应用程序部署带来了一个非常困难的问题。您需要使用相同的位数编译您的应用程序,否则您将无法使用安装的提供程序。 (或者卸载不兼容的 Office 版本并重新安装兼容的版本。当然,如果您应该能够说服您的客户 Office 是不兼容的应用程序:-)
关于c# - 如何在 C# 中打开与 Microsoft Access 数据库的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14024660/
我是一名优秀的程序员,十分优秀!