一尘不染

如果将处置关联的SqlConnection,是否需要SqlCommand.Dispose()?

c#

我通常使用这样的代码:

using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConn"].ConnectionString))
{
   var command = connection.CreateCommand();
   command.CommandText = "...";
   connection.Open();
   command.ExecuteNonQuery();
}

我会command自动处置吗?还是没有,我必须将其包装成using块?是否需要处置SqlCommand


阅读 322

收藏
2020-05-19

共1个答案

一尘不染

只是这样做:

using(var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConn"].ConnectionString))
using(var command = connection.CreateCommand())
{
   command.CommandText = "...";
   connection.Open();
   command.ExecuteNonQuery();
}

不在命令上调用dispose不会做任何不好的事情。但是,在其上调用Dispose将抑制对终结器的调用,从而使调用dispose可以提高性能。

2020-05-19