Есть ли разница между null и System.DBNull.Value? Если да, что это такое?
Я заметил это поведение сейчас -
while (rdr.Read())
{
if (rdr["Id"] != null) //if (rdr["Id"] != System.DBNull.Value)
{
int x = Convert.ToInt32(rdr["Id"]);
}
}
Пока я извлекаю данные из базы данных с помощью datareader sql, хотя нет значения, возвращаемого if(rdr["Id"] != null)
, возвращаемого true
, и в итоге выбрал исключение для кастования нулевого значения как целого.
Но это, если я использую if (rdr["Id"] != System.DBNull.Value)
, возвращает false
.
Какая разница между null и System.DBNull.Value?