【发布时间】:2013-06-03 20:46:15
【问题描述】:
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 块,但我当然想以正确的方式来做。
谢谢!
【问题讨论】:
标签: c# .net sql-server ado.net