Methods 对页面重用SqlConnection的正确方法
我将尽可能简单地描述它。我们有Methods 对页面重用SqlConnection的正确方法,methods,using,sqlconnection,Methods,Using,Sqlconnection,我将尽可能简单地描述它。我们有SqlConnection和3种方法 第一种类型 此类型打开oneSqlConnection和方法具有属性SqlConnection。基本上,它们只使用sConnection和create、use、close-SqlCommand和SqlDataReader方法 using (SqlConnection sConnection = new SqlConnection(string)) { sConnection.Open(); Method obj
SqlConnection
和3种方法
第一种类型
此类型打开oneSqlConnection和方法具有属性SqlConnection。基本上,它们只使用sConnection和create、use、close-SqlCommand和SqlDataReader方法
using (SqlConnection sConnection = new SqlConnection(string))
{
sConnection.Open();
Method objMethod = new Method();
objMethod.SqlConnection = sConnection;
objMethod.DoSomething();
Method2 objMethod = new Method2();
objMethod2.SqlConnection = sConnection;
objMethod2.DoSomething();
Method3 objMethod = new Method3();
objMethod3.SqlConnection = sConnection;
objMethod3.DoSomething();
}
第二类
此类型将在每个方法中分别创建新的SqlConnection、SqlCommand和SqlDataReader。对于3种方法,它必须打开和关闭3个SqlConnections
Method objMethod = new Method();
objMethod.DoSomething();
Method2 objMethod = new Method2();
objMethod2.DoSomething();
Method3 objMethod = new Method3();
objMethod3.DoSomething();
问题是,是将SqlConnection封装在方法中,还是在SqlConnection上创建并在方法中使用打开的连接而不需要打开新的连接是安全的
感谢Sql连接是池连接,因此如果您关心性能;两种方法都可能只使用一个连接,因此,使用第二种方法的代价可以忽略不计
另一方面,第二种方法显示了更好的封装和关注点分离。我会选择第二个选项。SqlConnections是池连接。使用Sql Server时,您最好打开、使用和关闭(使用block可以做到这一点-最终使用Dispose扩展到调用close) 事实上,保持连接打开并保持连接实际上会损害性能,因为您正在破坏池行为,并导致其他线程/请求在不需要时向池中添加另一个连接 让游泳池做它的工作