连接字符串对象的最佳实践
Best practice for Connection String Object
我的应用程序中有两个 methods
,用于调用两个不同的 SPs
。
public List<Products> GetProducts(string productName, string productCode)
{
SqlConnection sqlconn = new SqlConnection(ConfigurationManager.ConnectionStrings["CatalogueConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand("usp_Get_Products", sqlconn);
.....
}
我在同一个 class 中还有另一种方法,它再次创建 SqlConnection
对象。所以我的问题是什么应该是创建 connection
对象的最佳实践,这样我就不必在每种方法中一次又一次地 Create
它。为每个方法创建连接对象是一个好习惯吗?
我通常只有一个类似这样的全局静态变量:
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);
.....
}
您应该创建一些 class 或方法来处理如何向数据库执行命令。在这种情况下,我使用 static 允许每个人使用它而无需重新创建新实例。 ParamsInfo 是 DTO class 存储名称和参数对象的值。
例如
public static DataSet ExecuteDataSet(string connectionString, string storedProcedure, params ParamsInfo[] params)
{ ... }
让它为您处理一切。
public List<Products> GetProducts(SqlConnection sqlconn, string productName, string productCode)
{
SqlCommand cmd = new SqlCommand("usp_Get_Products", sqlconn);
}
SqlConnection sqlconn = new SqlConnection("");
sqlconn.Open();
GetProducts(sqlconn, "productName", "code");
GetProducts1(sqlconn, "productName", "code");
sqlconn.Close();
我的应用程序中有两个 methods
,用于调用两个不同的 SPs
。
public List<Products> GetProducts(string productName, string productCode)
{
SqlConnection sqlconn = new SqlConnection(ConfigurationManager.ConnectionStrings["CatalogueConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand("usp_Get_Products", sqlconn);
.....
}
我在同一个 class 中还有另一种方法,它再次创建 SqlConnection
对象。所以我的问题是什么应该是创建 connection
对象的最佳实践,这样我就不必在每种方法中一次又一次地 Create
它。为每个方法创建连接对象是一个好习惯吗?
我通常只有一个类似这样的全局静态变量:
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);
.....
}
您应该创建一些 class 或方法来处理如何向数据库执行命令。在这种情况下,我使用 static 允许每个人使用它而无需重新创建新实例。 ParamsInfo 是 DTO class 存储名称和参数对象的值。
例如
public static DataSet ExecuteDataSet(string connectionString, string storedProcedure, params ParamsInfo[] params)
{ ... }
让它为您处理一切。
public List<Products> GetProducts(SqlConnection sqlconn, string productName, string productCode)
{
SqlCommand cmd = new SqlCommand("usp_Get_Products", sqlconn);
}
SqlConnection sqlconn = new SqlConnection("");
sqlconn.Open();
GetProducts(sqlconn, "productName", "code");
GetProducts1(sqlconn, "productName", "code");
sqlconn.Close();