0

在试图追踪仅在某些情况下发生的空引用异常的原因时,我遇到了以下代码:

SqlCeDataReader IdValsReader = IdValsCMD.ExecuteReader();
if ((IdValsReader.Read()) && (!IdValsReader.IsDBNull(0)))
{
    return string.Format("{0};{1};{2};{3};{4};{5};{6};{7};", 
        IdValsReader.GetValue(DESCRIPTION_INDEX),
        . . .
}
IdValsReader.Close();

...并想知道我是否应该在 IdValsReader.Close() 之后添加这一行:

IdValsReader.Dispose();

我确实这样做了,但似乎没有什么区别;我应该把它留在里面还是去掉它?

4

1 回答 1

6

来自 MSDN:[Dispose 方法] 释放 DbDataReader 使用的资源并调用 Close。

因此,一旦您完成了阅读器,调用 dispose 似乎是明智的。更好的是,将它全部包装在一个 Using 块中,然后忘记它。

于 2013-04-09T16:27:12.887 回答