如果我在断开连接模式下没有关闭数据库连接怎么办?

时间:2016-05-07 16:47:58

标签: c# sql-server ado.net disconnected

我正在使用连接到SQL Server的Windows窗体应用程序(断开连接模式)。我在应用程序中处理的每个操作都需要连接。所以我不知道在哪里关闭连接。

我问如果我不关闭连接怎么办?我知道没有出现运行时错误。但是还有其他可能出现的错误吗?

1 个答案:

答案 0 :(得分:0)

如果您为每个方法使用相同的连接,则可能存在私有字段或GetConnection()方法等;当连接仍然打开时,你最终可能会尝试读/写。

如果使用实时SQL数据库,那么这可能会抛出错误并且最终可能会陷入其中。

如果可以,请在每次要访问数据库时在using语句中创建新的连接实例。

像这样:

var connectionString = "YourConnectionStringToTheDB";
var queryString ="YourSQLQueryHere"; // FROM * IN tbl SELECT * etc...

using (SqlConnection connection = new SqlConnection(
           connectionString))
{
    using (SqlCommand command = new SqlCommand(queryString, connection))
    {
        command.Connection.Open();
        command.ExecuteNonQuery();
    }
 }

这种方式在代码在using语句范围之外运行时关闭并处理掉。

请注意,SqlCommand也在using语句中,因为它也可以被处理掉。

这是更干净的代码,并标记垃圾收集器处理的对象。 (谷歌是你的朋友) - BIG主题;很多东西要读。

以下是一个类似的问题,可以为您提供更多详细信息:The C# using statement, SQL, and SqlConnection

修改

更好的是,您可以将SQL代码包装在try { } catch { }块中,以便在运行时处理任何错误。