以下代码是否正确清理所有SqlDataReaders:
using (IDataReader reader = SqlHelper.GetDataReader(sql.ToString())) {
if (reader.Read()) {
result = reader.IsDBNull(0) ? string.Empty : reader[0].ToString();
}
}
我的代码中存在一些并发/解除分配问题,并试图将其删除。
答案 0 :(得分:2)
Dispose()
语句的结尾超出范围, IDataReader
将自动在using
上调用。还要确保使用CommandBehavior.CloseConnection
创建阅读器,以便阅读器在处理后将处置连接。
但是我没有看到任何涉及连接的其他代码。如果您使用的是经典的SqlHelper
类,那可能是问题的根源......