0

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 に完全にアクセスできるようにしました。

これを修正する方法についてのアイデアはありますか? ありがとう!

4

1 に答える 1

0

既存の接続を閉じ、これを最後に追加します。

conn.close();
于 2013-03-21T19:56:39.330 に答える