Chcę pobrać wartości dziesiętne z bazy danych i chciałbym wiedzieć, który jest zalecany sposób, aby sprawdzić wartości null.SqlDataReader Najlepszym sposobem sprawdzenia wartości null -sqlDataReader.IsDBNull vs DBNull.Value
Widziałem na MSDN - DBNull.Value Field, że ten czek jest rzadko używany.
Zatem, czy reader.IsDBNull
jest najlepszym/najskuteczniejszym sposobem sprawdzania wartości zerowych?
Stworzyłem 2 metody próbkowania:
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];
}
Większość czasu pola będą puste.
Z góry dziękuję!
Którykolwiek wolisz i znajdziesz najbardziej czytelny. Warto jednak zauważyć, że twoje przykłady nie są dokładnie równoważne, biorąc pod uwagę użycie 'reader.GetOrdinal' w drugim. –
Wewnętrznie składnia 'reader [nazwa pola]' została przetłumaczona na 'reader.GetOrdinal (fieldName)' – Steve
Poprawiłem przykład użycia czytnika [fieldName] w obu przypadkach – diver