Existe alguma diferença entre null e System.DBNull.Value? Se sim, o que é?
Percebi esse comportamento agora -
while (rdr.Read())
{
if (rdr["Id"] != null) //if (rdr["Id"] != System.DBNull.Value)
{
int x = Convert.ToInt32(rdr["Id"]);
}
}
Enquanto eu recupero dados do banco de dados usando um datareader sql, nenhum valor foi if(rdr["Id"] != null)
retornado true
e, eventualmente, lançou uma exceção para converter um nulo como inteiro.
Mas, isso se eu usar if (rdr["Id"] != System.DBNull.Value)
retornos false
.
Qual é a diferença entre null e System.DBNull.Value?
System.Data
e o outro é um valor especial que significa a falta de um referente. Eles não têm nada a ver um com o outro. Você pode explicar sobre o que está confuso? A sua verdadeira pergunta é "por que fazerDataRows
eDataReaders
colocarDBNull.Value
dentro de si em vez denull
?"