一尘不染

“打开/关闭” SqlConnection还是保持打开状态?

c#

我用静态方法在简单的静态类中实现了我的业务逻辑。这些方法中的每一个在调用时都会打开/关闭SQL连接:

public static void DoSomething(string something)
{
    using (SqlConnection connection = new SqlConnection("..."))
    {
        connection.Open();

        // ...

        connection.Close();
    }
}

但是我认为避免打开和关闭连接会 节省性能 。不久前,我用 OleDbConnection
类(不确定SqlConnection)进行了一些测试,它确实可以像这样工作(据我所记得):

//pass the connection object into the method
public static void DoSomething(string something, SqlConnection connection)
{
    bool openConn = (connection.State == ConnectionState.Open);
    if (!openConn)
    {
        connection.Open();
    }

    // ....

    if (openConn) 
    {
        connection.Close();
    }
}

所以问题是-我应该选择方法(a)还是方法(b)?我读到另一个stackoverflow问题,即连接池为我节省了性能,我完全不必费心…

PS。这是一个ASP.NET应用程序-连接仅在Web请求期间存在。不是Win-App或服务。


阅读 429

收藏
2020-05-19

共1个答案

一尘不染

坚持选择a

连接池是您的朋友。

2020-05-19