Чи існує якась різниця між null і System.DBNull.Value? Якщо так, то що це?
Я помітив цю поведінку зараз -
while (rdr.Read())
{
if (rdr["Id"] != null) //if (rdr["Id"] != System.DBNull.Value)
{
int x = Convert.ToInt32(rdr["Id"]);
}
}
Поки я отримую дані з бази даних за допомогою програми читання даних sql, хоча повернене значення не if(rdr["Id"] != null)
повертається true
і врешті-решт викидає виняток для лиття нуля як цілого числа.
Але це, якщо я використовую if (rdr["Id"] != System.DBNull.Value)
return false
.
У чому різниця між null і System.DBNull.Value?
System.Data
, а інший - особливим значенням, що означає відсутність референта. Вони не мають нічого спільного між собою. Чи можете ви детальніше розповісти, що вас бентежить? Ваше справжнє запитання "навіщо робитиDataRows
іDataReaders
вкладатиDBNull.Value
всередину себе, а неnull
?"