如果我在断开连接模式下不关闭数据库连接怎么办
What if i don't close database connection in disconnected mode
我正在做 windows 表单应用程序并连接到 SQL 服务器(断开连接模式)。我在我的应用程序中处理的每一个动作都需要连接。所以我不知道在哪里关闭连接。
我问的是如果我不关闭连接怎么办。我知道没有出现运行时错误。但是还有其他可能出现的错误吗?
如果您对每个方法使用相同的连接,来自私有字段或 GetConnection()
方法等,则存在风险;当连接仍处于打开状态时,您最终可能会尝试 read/write。
这可能会引发错误,如果使用实时 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
语句中,因为它也可以被处理掉。
这是更简洁的代码,并标记了垃圾收集器要处理的对象。 (Google 是你的朋友)- 大话题;有很多东西要读。
这是一个类似的问题,它为您提供了更多详细信息:The C# using statement, SQL, and SqlConnection
编辑
更好的是,您可以将 SQL 代码包装在 try { }
catch { }
块中,以在运行时处理任何错误。
我正在做 windows 表单应用程序并连接到 SQL 服务器(断开连接模式)。我在我的应用程序中处理的每一个动作都需要连接。所以我不知道在哪里关闭连接。
我问的是如果我不关闭连接怎么办。我知道没有出现运行时错误。但是还有其他可能出现的错误吗?
如果您对每个方法使用相同的连接,来自私有字段或 GetConnection()
方法等,则存在风险;当连接仍处于打开状态时,您最终可能会尝试 read/write。
这可能会引发错误,如果使用实时 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
语句中,因为它也可以被处理掉。
这是更简洁的代码,并标记了垃圾收集器要处理的对象。 (Google 是你的朋友)- 大话题;有很多东西要读。
这是一个类似的问题,它为您提供了更多详细信息:The C# using statement, SQL, and SqlConnection
编辑
更好的是,您可以将 SQL 代码包装在 try { }
catch { }
块中,以在运行时处理任何错误。