0

wpf プロジェクトでアクセス ファイル .mdb ファイルを使用しており、このファイルは ms アクセス 97 の間に作成されます。

「データベースを開けません」などの例外が発生します。アプリケーションが認識できるデータベースではないか、ファイルが破損している可能性があります。

ただし、次のようなアダプターを使用してクエリを呼び出しているときに、この例外が発生することが常にあるとは限りません。

tblAccountTableAdapter accountAdapter = new tblAccountTableAdapter();
            DateTime? syskey = accountAdapter.GetSysKeyofAccount(accountNumber);

接続文字列:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Data\mmlp.mdb;Persist Security Info=True

上記のクエリから 'GetSyskeyofAccount()' を呼び出すと、上記の例外が発生し、場合によっては別のクエリが発生するため、例外を発生させるために1つのクエリだけに固執することはありません。

そして、私は何度もこの問題を見つけようとしましたが、さまざまな場所で例外が発生している場所を見つけるのは非常に困難です。

私のファイルのサイズはわずか KB です。

ありがとう、ナグ

4

1 に答える 1

0

これが実行されているマシンと接続しようとしている MDB のバージョンによっては、ACE ドライバーを使用したほうがよい場合があります (または、実際には ACE ドライバーが唯一の選択肢である場合もあります)。

JET 4.0 ドライバーでは、Office 2003 までの Office 形式のみを読み取ることができます。Office 2007 以降では、ACE ドライバーを使用する必要があります。

また、64 ビットの JET ドライバーもありません。これが、JET を使用して接続できないもう 1 つの理由である可能性があります。

ただし、32 ビットと 64 ビットの両方の ACE ドライバーがあり、下位互換性があります。

ドライバーは、 Microsoft Access データベース エンジン 2010 再頒布可能パッケージから入手できます。

次に、使用する 接続文字列について詳しく説明します: Access 2007 の接続文字列

于 2013-05-15T11:35:01.693 に答える