Ich möchte Dezimalwerte aus der Datenbank abrufen, und ich möchte wissen, welche die empfohlene Methode zum Überprüfen auf Nullwerte ist.SqlDataReader Die beste Methode zum Überprüfen auf Nullwerte -sqlDataReader.IsDBNull vs DBNull.Value
Ich habe auf MSDN - DBNull.Value Field gesehen, dass diese Prüfung selten verwendet wird.
So ist die reader.IsDBNull
die beste/effizienteste Möglichkeit, nach Nullen zu suchen?
Ich habe 2 Beispielmethoden erstellt:
public static decimal? GetNullableDecimal(SqlDataReader reader, string fieldName)
{
if (reader[fieldName] == DBNull.Value)
{
return null;
}
return (decimal)reader[fieldName];
}
public static decimal? GetNullableDecimal_2(SqlDataReader reader, string fieldName)
{
if (reader.IsDBNull(reader[fieldName]))
{
return null;
}
return (decimal)reader[fieldName];
}
Die meiste Zeit die Felder null sein werden.
Vielen Dank im Voraus!
Welche auch immer Sie bevorzugen und am besten lesbar finden. Es ist jedoch erwähnenswert, dass Ihre Beispiele nicht streng äquivalent sind, wenn Sie "reader.GetOrdinal" im zweiten Beispiel verwenden. –
Intern wird die Syntax 'reader [fieldName]' aufgelöst in 'reader.GetOrdinal (fieldName)' – Steve
Ich habe das Beispiel so geändert, dass in beiden Fällen reader [fieldName] – diver