C# 连接字符串对象的最佳实践
在我的应用程序中,我有两个C# 连接字符串对象的最佳实践,c#,object,ado.net,database-connection,C#,Object,Ado.net,Database Connection,在我的应用程序中,我有两个方法,用于调用两个不同的SP public List<Products> GetProducts(string productName, string productCode) { SqlConnection sqlconn = new SqlConnection(ConfigurationManager.ConnectionStrings["CatalogueConnectionString"].ConnectionString); SqlCo
方法
,用于调用两个不同的SP
public List<Products> GetProducts(string productName, string productCode)
{
SqlConnection sqlconn = new SqlConnection(ConfigurationManager.ConnectionStrings["CatalogueConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand("usp_Get_Products", sqlconn);
.....
}
公共列表GetProducts(string productName、string productCode)
{
SqlConnection sqlconn=新的SqlConnection(ConfigurationManager.ConnectionString[“CatalogeConnectionString”].ConnectionString);
SqlCommand cmd=新的SqlCommand(“usp\U Get\U Products”,sqlconn);
.....
}
我在同一个类中还有另一个方法,它再次创建
SqlConnection
对象。所以我的问题是,创建连接
对象的最佳实践应该是什么,这样我就不必在每种方法中一次又一次地创建它。为每个方法创建连接对象是一种好的做法吗?我通常只有一个全局静态变量,类似于:
public static class MyCachedSettings
{
public static string ConnectionString =
ConfigurationManager.ConnectionStrings["CatalogueConnectionString" ].ConnectionString;
public static SqlConnection Connection = new SqlConnection(ConnectionString);
}
然后使用它:
public List<Products> GetProducts(string productName, string productCode)
{
SqlConnection sqlconn = new SqlConnection(MyCachedSettings.ConnectionString);
SqlCommand cmd = new SqlCommand("usp_Get_Products", sqlconn);
.....
}
公共列表GetProducts(string productName、string productCode)
{
SqlConnection sqlconn=新的SqlConnection(MyCachedSettings.ConnectionString);
SqlCommand cmd=新的SqlCommand(“usp\U Get\U Products”,sqlconn);
.....
}
我通常只有一个全局静态变量,类似于:
public static class MyCachedSettings
{
public static string ConnectionString =
ConfigurationManager.ConnectionStrings["CatalogueConnectionString" ].ConnectionString;
public static SqlConnection Connection = new SqlConnection(ConnectionString);
}
然后使用它:
public List<Products> GetProducts(string productName, string productCode)
{
SqlConnection sqlconn = new SqlConnection(MyCachedSettings.ConnectionString);
SqlCommand cmd = new SqlCommand("usp_Get_Products", sqlconn);
.....
}
公共列表GetProducts(string productName、string productCode)
{
SqlConnection sqlconn=新的SqlConnection(MyCachedSettings.ConnectionString);
SqlCommand cmd=新的SqlCommand(“usp\U Get\U Products”,sqlconn);
.....
}
您应该创建一些类或方法来处理如何对db执行命令。在本例中,我使用static来允许所有人使用它,而无需重新创建新实例。ParamsInfo是存储param对象的名称和值的DTO类
前
让它为你处理一切
您应该创建一些类或方法来处理如何对db执行命令。在本例中,我使用static来允许所有人使用它,而无需重新创建新实例。ParamsInfo是存储param对象的名称和值的DTO类 前 让它为你处理一切
公共列表GetProducts(SqlConnection sqlconn、string productName、string productCode)
{
SqlCommand cmd=新的SqlCommand(“usp\U Get\U Products”,sqlconn);
}
SqlConnection sqlconn=新的SqlConnection(“”);
sqlconn.Open();
GetProducts(sqlconn、“产品名称”、“代码”);
GetProducts1(sqlconn,“产品名称”,“代码”);
sqlconn.Close();
公共列表GetProducts(SqlConnection sqlconn、string productName、string productCode)
{
SqlCommand cmd=新的SqlCommand(“usp\U Get\U Products”,sqlconn);
}
SqlConnection sqlconn=新的SqlConnection(“”);
sqlconn.Open();
GetProducts(sqlconn、“产品名称”、“代码”);
GetProducts1(sqlconn,“产品名称”,“代码”);
sqlconn.Close();
是否每次都必须创建SqlConnection
对象?如果我有5种不同的方法,我必须创建这个对象5次?不,你没有。您可以创建一个连接并重新使用它。。。。只需确保不要跨线程重复使用它。我将修改上面的示例是否每次都必须创建SqlConnection
对象?如果我有5种不同的方法,我必须创建这个对象5次?不,你没有。您可以创建一个连接并重新使用它。。。。只需确保不要跨线程重复使用它。我将修改上面的示例