我想知道以下操作的优点和缺点
我最好将datareader设置为null,而不是调用close方法。如果这样做有什么好处,那么使用它会有什么问题?。
答案 0 :(得分:3)
您应该使用using
语句:
using (var reader = sqlCommand.ExecuteReader())
{
// do stuff
}
这样,即使在“do stuff”块中引发了异常,您也确信阅读器已关闭(处置)。
有关完整示例,请参阅this MSDN page。
更新(关于您的评论):
using
语句实际上只是一个try-finally块,以确保读者在每种情况下都被处理(关闭)。例如。上面的代码相当于:
SqlDataReader reader = null;
try
{
reader = sqlCommand.ExecuteReader();
}
finally
{
reader.Dispose(); // closes the reader
}