我正在使用 ACE OLEDB 对 MS Access mdb 文件运行查询。这适用于 x86 机器,但在 x64 上失败。
C# 代码(使用目标平台 x86 构建):
string conn = "Provider=Microsoft.ACE.OLEDB.12.0;data source=" + @"C:\abc\db\file.mdb";
OleDbConnection _connOle = new OleDbConnection(conn);
_connOle.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = _connOle;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select * from myTable";
cmd.ExecuteReader();
我得到的错误是“您的网络访问被中断。要继续,请关闭数据库,然后再次打开它。”
更新:仅当我的 mdb 文件具有链接表时才会发生这种情况。如果表被导入,这不会发生!让我补充一点,我已确保用户对文件夹 \AppData\Local\Temp 具有完全访问权限,以防 ACE.OLEDB 引擎需要访问它以临时存储链接表。
有想法该怎么解决这个吗?谢谢!