如果执行SqlCommand并超时,是否关闭和/或处理了相应的SqlConnection?
答案 0 :(得分:6)
除非您在using
语句中包含SqlConnection,否则您仍然有责任关闭和处理连接(就像任何其他异常一样)。
您还可以使用try/catch/finally
块:
try
{
// Create and execute your SqlCommand here
}
catch(SqlException ex)
{
// Catch the timeout
}
finally
{
// Close and Dispose the SqlConnection you're using
}
但using
更清洁并自动处理:
using(SqlConnection conn = new SqlConnection())
{
// Do your work here.
// The SqlConnection will be closed and disposed at the end of the block.
}
答案 1 :(得分:5)
不,你还需要自己清理。使用using块会导致它被处理掉:
using (SqlConnection connection = new SqlConnection(...))
{
// ...
}
答案 2 :(得分:0)
这应该在异常之后包含在finally子句中,以便关闭连接并清理任何sql相关的对象资源。 查看try / catch / finally并将清理代码放在finally语句中。