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(对象关系映射器)

于 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 回答