c# - "open/close"SqlConnection 还是保持打开状态?

标签 c# sqlconnection

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

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

        // ...

        connection.Close();
    }
}

但我认为传递连接对象并避免打开和关闭连接可以节省性能。很久以前,我用 OleDbConnection 类(不确定 SqlConnection)做了一些测试,它确实有助于像这样工作(据我所知):

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

    // ....

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

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

附言。这是一个 ASP.NET 应用程序 - 连接仅在网络请求期间存在。不是 win-app 或服务。

最佳答案

坚持选项 a

连接池是你的 friend 。

关于c# - "open/close"SqlConnection 还是保持打开状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4439409/

相关文章:

c# - 用户需要什么权限才能在 Active Directory 中验证凭据?

c# - C# 中的 WeakReference - 操作实例是如何丢失的?

c# - 如果您已经关闭 SqlConnection,是否需要关闭/处置 SqlDataReader?

c# - VS2017上SQL Server连接超时

c++ - 使用 SqlConnection 在托管 C++ 中连接和查询数据库

c# - 如何检查 Point3d 是否不为空?

c# - 以编程方式构建表以导出到 JSON 或从 JSON 导入?

c# - 创建一个 "where in"HQL 查询

c# - 我应该使用多少个 SqlConnection 实例

sql - 如何找到未封闭的连接?超时时间已到。在操作完成之前超时时间已过或服务器没有响应