是否需要配置SqlConnection以及SqlCommand?
是否有必要分开处理一个SqlConnection以及一个SqlCommand?
我正在做一些应用程序的维护工作,并找到以下代码:
public void CallStoredProc(string storedProcName)
{
using (SqlCommand command = new SqlCommand(storedProcName, CreateConnection()))
{
command.CommandType = CommandType.StoredProcedure;
command.Connection.Open();
// Additional code here.
command.ExecuteNonQuery();
}
}
这是否会在正常情况下以及是否有错误的情况下正确清理SqlConnection? 或者我们必须将代码更改为如下所示:
public void CallStoredProc(string storedProcName)
{
using (SqlConnection connection = CreateConnection())
{
using (SqlCommand command = new SqlCommand(storedProcName, connection))
{
command.CommandType = CommandType.StoredProcedure;
command.Connection.Open();
// Additional code here.
command.ExecuteNonQuery();
}
}
}
是的,你将不得不分开处理(连接)连接。 你也可以在源代码中看到这一点: SqlCommand.Dispose()
不关闭或处置它使用的连接(顺便说一句,如果你不能用同一个连接执行多个命令,那将会很糟糕)。
是的,在执行一段代码后,需要处理sqlconnection和sqlcommand对象。
现在,有两种方法可以实现这一点。 1.使用语句编写代码,该语句将负责处理对象,因为sqlconnection和sqlcommand实现了负责处理对象的IDisposable接口。2.通过在sqlconnection对象上显式调用.close()方法。
链接地址: http://www.djcxy.com/p/20371.html上一篇: Is it necessary to dispose SqlConnection as well as SqlCommand?
下一篇: Connection pool corrupted by nested ADO.NET transactions (with MSDTC)