Domanda

In trying to track down the cause of a Null Reference Exception which occurs only in certain situations, I came across this code:

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

...and wonder if I should add this line following the IdValsReader.Close():

IdValsReader.Dispose();

I did do so, but it seems to make no difference; should I leave it in or strip it out?

È stato utile?

Soluzione

From MSDN: [The Dispose method] Releases the resources used by the DbDataReader and calls Close.

So it seems sensible to call dispose once you're finished with the reader. Better still, wrap it all in a Using block and forget all about it.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top