我有一个连接字符串保存到Properties.Settings.Default
,我需要在所有类中使用sql连接而不必每次都声明它,那么应该如何声明呢?
答案 0 :(得分:2)
可以在任何类
的STATIC变量的帮助下完成答案 1 :(得分: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());
}
}
您可以扩展此类以包含执行查询的其他方法。
我强烈建议您使用ORM (Object-Relational Mapper)之类的Entity Framework。
答案 2 :(得分:1)
每当您实例化一个新对象时,都会向其构造函数传递对该连接的引用。
答案 3 :(得分:1)
我在旧项目中设置了类似的东西。
值得注意的是,由于connection pooling,您应该始终为所有操作使用新的SqlConnection
。
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.
}
}
答案 4 :(得分:0)
您可以将此代码用于获取连接字符串
var defaultConn= new SqlConnection(ConfigurationManager.AppSettings["defaultConn"].ToString());