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 ファイルにリンク テーブルがある場合にのみ発生します。テーブルがインポートされている場合、これは起こりません! 付け加えておきますが、リンクされたテーブルを一時的に保存するために ACE.OLEDB エンジンがアクセスする必要がある場合に備えて、ユーザーがフォルダー \AppData\Local\Temp に完全にアクセスできるようにしました。
これを修正する方法についてのアイデアはありますか? ありがとう!