SqlConnection
,SqlCommand
并且SqlDataReader
都实现了IDisposable
接口。我读到了一个总是包装IDisposables
成一个using
块的最佳实践。
所以,我查询数据的常见场景看起来像这样(在更大的上下文中,像 linq2sql 这样的映射工具当然是合适的,但假设我们想在这里使用这种方法):
using (SqlConnection cn = new SqlConnection("myConnectionstring"))
{
using (SqlCommand cm = new SqlCommand("myQuery", cn))
{
// maybe add sql parameters
using (SqlDataReader reader = cm.ExecuteReader())
{
// read values from reader object
return myReadValues;
}
}
}
这是正确的方法还是可以被认为是矫枉过正?我对这个级别的嵌套using
块有点不确定,但我当然想以正确的方式来做。谢谢!