为每个查询创建新的SQL连接是否有优势?

时间:2016-07-17 11:32:35

标签: c# sql sql-server

我正在尝试设计一个连接到SQL数据库的高效应用程序,我想知道为每个SQL查询创建SQL连接的优点/缺点是什么, 例如,像下面的代码一样,创建一个连接设置一次的类,这样你就可以在课堂上需要时调用它。

class SqlQuery
    {
        SqlConnection Connection = new SqlConnection(@myConnectionString);
          public void fillInfoData()
          {
              SqlCommand updateCommand = new SqlCommand(
                    @"my sql query", Connection);
              Connection.Open();
              updateCommand.ExecuteNonQuery();
              Connection.Close();
          }
    }

或者您应该为每个新查询创建新连接吗?

2 个答案:

答案 0 :(得分:6)

您为每个查询打开一个连接,然后当您关闭它时,它会返回到连接池,框架将管理其余的

所以你不必担心保持连接活动,超时等......

MSDN文章

https://msdn.microsoft.com/en-us/library/8xx3tyca(v=vs.110).aspx

答案 1 :(得分:2)

我认为他的意思不是保持一个开放的全局连接对象。但是您需要在需要时创建SqlConnection,执行该点所需的所有查询(每个查询不是单个连接),然后关闭连接。

因此,如果您有一堆需要执行的查询,则不需要为每个查询提供单个SQL连接,但只需要一个即可。但是,如果您每次用户点击按钮时都在执行查询,那么最好在每次点击时打开一个连接,因为这样可以更轻松地管理关闭和处理连接。