在c#中,所有类都要使用全局连接
我已将连接字符串保存到在c#中,所有类都要使用全局连接,c#,sqlconnection,C#,Sqlconnection,我已将连接字符串保存到Properties.Settings.Default,我需要在所有类中使用sql连接,而不必每次都声明它,那么应该如何声明呢?每当您实例化一个新对象时,都会将对该连接的引用传递给它的构造函数。这可以在任何类中的静态变量的帮助下完成。您可以将此代码用于获取连接字符串 var defaultConn= new SqlConnection(ConfigurationManager.AppSettings["defaultConn"].ToString())
Properties.Settings.Default
,我需要在所有类中使用sql连接,而不必每次都声明它,那么应该如何声明呢?每当您实例化一个新对象时,都会将对该连接的引用传递给它的构造函数。这可以在任何类中的静态变量的帮助下完成。您可以将此代码用于获取连接字符串
var defaultConn= new SqlConnection(ConfigurationManager.AppSettings["defaultConn"].ToString());
我在一个像这样的老项目中也有类似的设置。 值得注意的是,您应该始终为所有操作使用新的
SqlConnection
,因为
公共静态类SqlConnectionUtil
{
公共静态字符串DefaultConnectionString{get;private set;}
静态SqlConnectionUtil()
{
SQLConnectionUrl.DefaultConnectionString=
Properties.Settings.Default.TheConnectionString;
}
公共静态SqlConnection Create()
{
返回新的SqlConnection(SqlConnectionUtil.DefaultConnectionString);
}
}
然后你会像这样使用它
使用(var connection=SqlConnectionUtil.Create())
{
使用(var command=connection.CreateCommand())
{
//做事。
}
}
实际上,您不需要到处使用单个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());
}
}
您可以扩展该类以包含执行查询的其他方法
我强烈建议您使用like。这不能用在static中,您是什么意思?顺便说一句,我编辑了一个输入错误,构造函数不应该被声明为
公共的
(我没有时间尝试编译它)。这个。DefaultConnectionString
这个不应该在那里