2

接続文字列を に保存しました。Properties.Settings.Default毎回宣言することなく、すべてのクラスで SQL 接続を使用する必要があります。どのように宣言する必要がありますか?

4

5 に答える 5

2

これは、どのクラスでも STATIC 変数を使用して実行できます。

于 2013-03-02T12:50:14.397 に答える
2

SqlConnection実際には、どこでもシングルを使用する必要はありません。より良いアプローチは、データ アクセスを管理するクラスを作成することです。通常、これはデータ アクセス層 (DAL) の役割です。DAL は、すべてのデータベース関連のものを処理する一連のクラスです。

この目的のための非常に単純なクラスは次のようになります。

public class DatabaseManager
{
    private static DatabaseManager _instance;
    private DatabaseManager()
    {
    }

    static DatabaseManager()
    {
        _instance = new DatabaseManager();
    }

    public DatabaseManager Instance
    {
        get { return _instance; }
    }

    private string GetConnectionString()
    {
        return Properties.Settings.Default.MyConnectionString;
    }

    public SqlConnection CreateConnection()
    {
        return new SqlConnection(GetConnectionString());
    }
}

このクラスを拡張して、クエリを実行する別のメソッドを含めることができます。

Entity FrameworkのようなORM (Object-Relational Mapper)を使用することを強くお勧めします。

于 2013-03-02T12:51:55.993 に答える
1

新しいオブジェクトをインスタンス化するときはいつでも、そのコンストラクターにその接続への参照を渡します。

于 2013-03-02T12:49:55.467 に答える
1

私は古いプロジェクトで似たようなものをセットアップしました。接続プールSqlConnectionのため、常にすべての操作に new を使用する必要があることに注意してください。

public static class SqlConnectionUtil
{
    public static string DefaultConnectionString { get; private set; }

    static SqlConnectionUtil()
    {
        SqlConnectionUril.DefaultConnectionString = 
                Properties.Settings.Default.TheConnectionString;
    }

    public static SqlConnection Create()
    {
        return new SqlConnection(SqlConnectionUtil.DefaultConnectionString);
    }
}

次に、このように使用します。

using (var connection = SqlConnectionUtil.Create())
{
    using (var command = connection.CreateCommand())
    {
        // do things.
    }
}
于 2013-03-02T12:50:55.333 に答える
0

このコードを使用して、接続文字列を取得できます

      var      defaultConn= new SqlConnection(ConfigurationManager.AppSettings["defaultConn"].ToString());
于 2013-03-02T12:50:45.180 に答える