我从msdn获取此代码
string connString = "Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;";
using (SqlConnection conn = new SqlConnection(connString))
{
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT CustomerId, CompanyName FROM Customers";
conn.Open();
using (SqlDataReader dr = cmd.ExecuteReader())
{
while (dr.Read())
Console.WriteLine("{0}\t{1}", dr.GetString(0), dr.GetString(1));
}
}
Run Code Online (Sandbox Code Playgroud)
你可以看到这里没有使用SqlCommand,所以它需要吗?
Joh*_*ers 11
您需要using为您创建的每个对象实现一个IDisposable.这包括SqlCommand和SqlConnection.
这条规则很少有例外.主要的例外是WCF客户端代理.由于设计缺陷,他们的Dispose方法有时会抛出异常.如果您在using语句中使用了代理,则第二个异常将导致您丢失原始异常.