我有一个连接字符串保存到Properties.Settings.Default
,我需要在所有类中使用一个sql连接,而不必每次都声明它,那么它应该如何声明呢?
问问题
19734 次
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 回答