首页 > 解决方案 > C# DataTable 和 SqlDataAdapter 打开、关闭连接和性能问题

问题描述

这是我用来从数据库中获取数据的函数

 public static DataTable getDataTable(string sql, string tableName)
    {
        DataTable dt = new DataTable();
        try
        {
            SqlDataAdapter da = new SqlDataAdapter(sql, new SqlConnection(strConn));
            da.Fill(dt);
            dt.TableName = tableName;
        }
        catch (Exception)
        {
            dt = null;
        }
        return dt;
    }

问题是:

  1. 它会自动打开和关闭连接吗?因为似乎我们只将 sql 查询传递给 SqlDataAdapter 并且它没有打开或关闭连接。
  2. 它是否会导致任何性能降低应用程序的速度?
  3. 它会导致服务器(内存)的任何性能问题吗?

提前致谢。

标签: c#datatablesqldataadapter

解决方案


我希望这对你有帮助

答案 1:如果我没记错的话,SQLConnection 在后台管理连接池。

这是一篇关于这个主题的好文章: https ://msdn.microsoft.com/en-us/library/ms971481.aspx

此外,最佳实践是使用“using”关键字来包装您的连接,因为一旦范围退出(有或没有例外),它将自动关闭您的连接

  using(SqlConnection conn = new SqlConnection())
  {
    conn.Open();
    //Do Work with connection

  } //Connection automatically closes here without the need to call conn.Close()

答案 2: Sql Connection 打开速度变慢或使应用程序性能更好

答案 3: 在 C# 中打开/关闭 SqlConnection 的最佳方法是什么


推荐阅读