Domanda

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 utilizzando un DataReader SQL, sebbene non vi sia alcun valore restituito if(rdr["Id"] != null) restituito true e alla fine ha lanciato un'eccezione per il lancio di un numero intero.

Ma questo se uso if (rdr["Id"] != System.DBNull.Value) ritorna false.

Qual è la differenza tra null e system.dbnull.value?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top