表单中的打开/关闭连接

时间:2013-01-19 18:03:34

标签: c# sql

我对SQL连接打开和关闭有疑问。 哪一个更好:

  1. form_load事件中打开连接,并在form_closing事件中关闭它。
  2. 为每次通话打开和关闭连接。
  3. 当然有时我需要经常阅读数据。

7 个答案:

答案 0 :(得分:2)

通常,您应该尽可能地保持数据库连接打开一小段时间。

因此,在using块中打开并关闭每个呼叫的每个连接,以确保处置。

我想补充一点,应该在表单中发生 - 表单应该关注处理UI和UI事件 - 打开和关闭连接应该发生在你身上{{3} }。

答案 1 :(得分:1)

我建议你最好选择方法2 如果你选择1,可能会引起其他问题

答案 2 :(得分:0)

这取决于您希望如何/何时使用连接。但是,您应该启用连接池,这样可以通过在池中保持连接可用来缓解打开和关闭多个连接。

答案 3 :(得分:0)

我会争取第二,因为不需要始终与数据库进行交互。通常我们加载数据并保存数据。当与数据库进行密切交互并且打开和关闭连接成本高时,长时间打开连接很有用。与数据库交互的代码应该与UI分开,并且应该放在data access layer中。您可以创建一个单独的类库,用于执行数据库操作或至少为同一项目中的数据库创建类。

  

开放连接的一般公会线是打开开放连接   尽可能晚,并尽快密切联系

答案 4 :(得分:0)

我绝对建议按需打开和关闭连接。由于连接池打开,连接相当便宜,这意味着您每次使用它时都不必处理检查连接以确保它仍处于打开状态。

答案 5 :(得分:0)

你绝对应该选择2号。 特别是在一种形式中,您不知道用户将占用多长时间。

重新声明在声明连接时使用Using语句,因此您确定无论发生什么情况,连接都将再次关闭。

答案 6 :(得分:0)

最佳做法是尽快关闭sqlconnection,因此请使用sqlconnection with(它实现IDisposable接口),如下所示:

using (SqlConnection con = new SqlConnection(connectionString))
    {
        //
        // Open the SqlConnection.
        //
        con.Open();
              //do your process
            }