【发布时间】:2014-06-04 20:15:57
【问题描述】:
我看到在大多数示例中SqlCommand 是这样使用的
using (SqlConnection con = new SqlConnection(CNN_STRING))
{
using (SqlCommand cmd = new SqlCommand("Select ID,Name From Person", con))
{
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
}
我知道我们为什么使用using 语句。但是SqlCommand 不包含Close() 方法,那么我们真的应该在using 语句中使用它吗?
【问题讨论】:
-
在这个例子中,你不应该真正关心关闭连接,因为
Fill()管理连接本身,即使你没有使用using语句。 -
是的,你是对的。来自MSDN:“与SELECT语句关联的连接对象必须有效,但不需要打开。如果在调用Fill之前关闭连接,则打开它以检索数据,然后关闭。如果连接是在调用 Fill 之前打开,它保持打开状态。” - msdn.microsoft.com/en-us/library/377a8x4t.aspx
标签: c# sqlconnection sqlcommand using-statement