C'è qualche differenza tra null e System.DBNull.Value? Se sì, che cos'è?
Ho notato questo comportamento ora -
while (rdr.Read())
{
if (rdr["Id"] != null) //if (rdr["Id"] != System.DBNull.Value)
{
int x = Convert.ToInt32(rdr["Id"]);
}
}
Mentre recupero i dati dal database usando un datareader sql, anche se non viene restituito alcun valore if(rdr["Id"] != null)
restituito true
e alla fine ho lanciato un'eccezione per il cast di un valore nullo come numero intero.
Ma questo se uso i if (rdr["Id"] != System.DBNull.Value)
ritorni false
.
Qual è la differenza tra null e System.DBNull.Value?
System.Data
e l'altro è un valore speciale che indica la mancanza di un referente. Non hanno niente a che fare l'uno con l'altro. Puoi approfondire ciò su cui sei confuso? La tua vera domanda è "perché fareDataRows
eDataReaders
mettereDBNull.Value
dentro se stessi invece dinull
?"