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)

事实上,保持连接打开并保持连接实际上会损害性能,因为您正在破坏池行为,并导致其他线程/请求在不需要时向池中添加另一个连接

让游泳池做它的工作