2

.Net Framework 3.5 で実行されている C# 2010 WinForms アプリケーションがあります。このアプリケーションを起動すると、実行可能ファイルと同じフォルダーにある Access 2007 accdb データベースに接続します。接続に使用するコードは次のとおりです。

    public static OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=LineWatchManager.accdb;Persist Security Info=True;Jet OLEDB:Database Password=<password here>");
    public static void CreateConnection()
    {
        con.Open();
    }

私が抱えている問題は、クライアントのコンピューター (Windows 7) で、コンピューターの起動後に最初にプログラムを起動すると、データベースへの接続が常に失敗することです。その後は問題なく繋がります。

プログラムの起動時にデータベースへの接続を 3 回試行するように試みましたが、試行間隔が 500 ミリ秒であっても役に立ちません。私のコンピューター (Windows 7 または 8) ではこの問題は発生しません。

何度もデバッグを試み、オンラインで何時間も費やした後、私が見つけた唯一の関連記事はこれです。悲しいことに解決策はありませんが、これは Access を使用していない人に起こったので、.Net のせいか C# のせいだと思います。どんな助けでも大歓迎です!

編集: クライアントは Access の完全なバージョンではなく、このランタイムを実行しています。

4

2 に答える 2

2

this を試してください。 thisがアプリケーションのデフォルト パスになることconnectionStringに注意してください。|DataDirectory|

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|/LineWatchManager.accdb;Persist Security Info=True;Jet OLEDB:Database Password=<password here>
于 2013-02-17T12:29:49.623 に答える
1

これを使用して接続を作成します。

public static OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory| ...");

于 2013-02-17T12:30:34.237 に答える