连接ms access数据库时出现连接错误
我想通过 Windows Server 2008 R2 标准的 ado.net 连接 c# 中的 ms access 数据库。
using System.Data.OleDb; OleDbConnection connectionAccess = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\testTable.mdb"); OleDbDataAdapter adapterAccess = new OleDbDataAdapter("Select * from test", connectionAccess); DataSet ds = new DataSet(); adapterAccess.Fill(ds); dataGridView1.DataSource = ds.Tables[0];
但它给出了一个错误:
The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.
你有什么建议以及为什么会出现这个错误。 如果没有注册的话如何注册。
提前致谢
I want to connect the ms access database in c# through ado.net at windows server 2008 R2 standard.
using System.Data.OleDb; OleDbConnection connectionAccess = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\testTable.mdb"); OleDbDataAdapter adapterAccess = new OleDbDataAdapter("Select * from test", connectionAccess); DataSet ds = new DataSet(); adapterAccess.Fill(ds); dataGridView1.DataSource = ds.Tables[0];
But it gives an error:
The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.
Have you any suggestion and why this error is coming.
If it is not registered then how to register this.
Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
问题可能出在平台上。 Jet OLEDB 仅支持 x86(32 位操作系统),不支持 x64 64(位)。没有 64 位版本的 jet,这就是您收到该错误的原因。
要强制您的应用程序使用 32 位,请在 Visual Studio 的高级编译器选项中将目标 cpu 更改为 x86。
MSDN 上有类似问题可能有帮助。
也可以尝试自己手动注册 DLL。
对于 Jet 4.0,dll 的路径是:
在命令提示符下使用 regsvr32 注册 dll,如下所示:
The problem might be of the Platform. The Jet OLEDB only supports x86 (32 bit OS) and not x64 64 (bit). There is not a 64 bit version of jet that is why you get that error.
To force your app to use the 32 bit change the target cpu to x86 in the advanced compiler options in visual studio.
This similar question on MSDN may help.
Also try manually registering the DLL yourself.
For your Jet 4.0 the path of dlls are:
register the dll by using
regsvr32
like this on command prompt:这可能是由于 Windows 用户安全设置问题,请检查路径权限等。
This could be because of a windows user seucrity setting issue,check the rights over the path etc.