不,处置SqlCommand
不会影响连接。更好的方法是也将其包装SqlConnection
在 using 块中:
using (SqlConnection conn = new SqlConnection(connstring))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(cmdstring, conn))
{
cmd.ExecuteNonQuery();
}
}
否则,连接不会因为使用它的命令被处置而改变(也许这就是你想要的?)。但请记住,连接也应该被处理掉,而且处理起来可能比命令更重要。
编辑:
我刚刚测试了这个:
SqlConnection conn = new SqlConnection(connstring);
conn.Open();
using (SqlCommand cmd = new SqlCommand("select field from table where fieldid = 1", conn))
{
Console.WriteLine(cmd.ExecuteScalar().ToString());
}
using (SqlCommand cmd = new SqlCommand("select field from table where fieldid = 2", conn))
{
Console.WriteLine(cmd.ExecuteScalar().ToString());
}
conn.Dispose();
第一个命令在 using 块退出时被释放。连接仍然打开并且对第二个命令有好处。
因此,处理命令绝对不会处理它正在使用的连接。