处理SqlCeDataReader是个好主意吗?

时间:2013-04-09 16:24:05

标签: c# sql-server-ce windows-ce .net-1.0 sqlcedatareader

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

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();

我确实这样做了,但似乎没有任何区别;我应该把它留下来还是把它剥掉?

1 个答案:

答案 0 :(得分:6)

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

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