ASP.NET中的SqlDataReader释放并关闭

时间:2012-05-23 02:18:48

标签: c# asp.net .net sql-server sqldatareader

以下代码是否正确清理所有SqlDataReaders:

using (IDataReader reader = SqlHelper.GetDataReader(sql.ToString())) {
    if (reader.Read()) {
        result = reader.IsDBNull(0) ? string.Empty : reader[0].ToString();
    }
}

我的代码中存在一些并发/解除分配问题,并试图将其删除。

1 个答案:

答案 0 :(得分:2)

一旦Dispose()语句的结尾超出范围,

IDataReader将自动在using上调用。还要确保使用CommandBehavior.CloseConnection创建阅读器,以便阅读器在处理后将处置连接。

但是我没有看到任何涉及连接的其他代码。如果您使用的是经典的SqlHelper类,那可能是问题的根源......