Czy jest jakaś różnica między null i System.DBNull.Value? Jeśli tak, co to jest?
Zauważyłem teraz to zachowanie -
while (rdr.Read())
{
if (rdr["Id"] != null) //if (rdr["Id"] != System.DBNull.Value)
{
int x = Convert.ToInt32(rdr["Id"]);
}
}
A ja pobierania danych z bazy danych przy użyciu DataReader SQL, choć nie ma wartości zwracane if(rdr["Id"] != null)
powrócił true
i ostatecznie zwrócił wyjątek odlewania null jako całkowitą.
Ale to, jeśli używam if (rdr["Id"] != System.DBNull.Value)
zwrotów false
.
Jaka jest różnica między wartością null a System.DBNull.Value?
System.Data
, a druga to specjalna wartość oznaczająca brak desygnatu. Nie mają ze sobą nic wspólnego. Czy możesz wyjaśnić, w czym jesteś zdezorientowany? Czy Twoje prawdziwe pytanie brzmi: „dlaczego robićDataRows
iDataReaders
wkładaćDBNull.Value
w siebie zamiastnull
?”