Gibt es einen Unterschied zwischen null und System.DBNull.Value? Wenn ja, was ist das?
Ich habe dieses Verhalten jetzt bemerkt -
while (rdr.Read())
{
if (rdr["Id"] != null) //if (rdr["Id"] != System.DBNull.Value)
{
int x = Convert.ToInt32(rdr["Id"]);
}
}
Während ich Daten mit einem SQL-Datenleser aus der Datenbank abrufe, wird kein zurückgegebener Wert if(rdr["Id"] != null)
zurückgegeben true
und schließlich eine Ausnahme für das Umwandeln einer Null als Ganzzahl ausgelöst .
Aber dies, wenn ich if (rdr["Id"] != System.DBNull.Value)
Retouren verwende false
.
Was ist der Unterschied zwischen null und System.DBNull.Value?
null
.
System.Data
, und die andere ist ein spezieller Wert, der das Fehlen eines Referenten anzeigt. Sie haben nichts miteinander zu tun. Können Sie näher erläutern, worüber Sie verwirrt sind? Ist Ihre eigentliche Frage : „Warum tunDataRows
undDataReaders
setzenDBNull.Value
innerhalb von sich selbst stattnull
?“