3

アプリ用の汎用データベースハンドラークラスを作成しました。

ローカルデータベースを使用しているので、SqlCeConnectionここではクラスが使用されています。

接続文字列が有効であることをテストしたいので、実行する前にユーザーへの接続ステータスを更新しますconnection.Open();

まあ言ってみれば

 SqlCeConnection conn = new SqlCeConnection(connectionString);

 //so far we have only created the connection, but not tried to open it
 //Would be nice to update the UI to say that conn is OK
 conn.testConnection();

 conn.Open();

open私は接続を試みるメソッドを書くことを考えていました、私はcloseこれを考えるのが正しいですか、それともより良い方法がありますか?

4

2 に答える 2

6

接続をテストすると、余分なオーバーヘッドが追加されます。直接接続を開いてコードを中に入れてみませんかTry-Catch

try
{
    conn.Open();
}
catch(SqlCeException ex)
{
    // output the error to see what's going on
    MessageBox.Show(ex.Message); 
}
于 2012-10-26T03:46:50.917 に答える
3

DbConnectionStringBuilderプロパティとともに使用できます。接続文字列が正しい形式でない場合はConnectionString例外がスローされます。

public static class Extension
{
    public static void TestConnection(this DbConnection connection)
    {
        var builder = new DbConnectionStringBuilder
            {
                ConnectionString = connection.ConnectionString
            };
    }
}

この方法では、データベースへの接続を実際に開く必要はありません。

于 2012-10-26T03:53:58.303 に答える