Null ve System.DBNull.Value arasında herhangi bir fark var mı? Eğer evet ise, bu nedir?
Bu davranışı şimdi fark ettim -
while (rdr.Read())
{
if (rdr["Id"] != null) //if (rdr["Id"] != System.DBNull.Value)
{
int x = Convert.ToInt32(rdr["Id"]);
}
}
Döndürülen hiçbir değer yoktur gerçi, bir sql DataReader kullanarak veritabanından veri almak iken if(rdr["Id"] != null)
döndü true
ve sonunda tamsayı olarak bir null döküm için bir istisna attı.
Ama bu if (rdr["Id"] != System.DBNull.Value)
iadeleri kullanırsam false
.
Null ve System.DBNull.Value arasındaki fark nedir?
System.Data
, diğeri ise bir referansın olmadığını gösteren özel bir değerdir. Birbirleriyle hiçbir alakaları yok. Kafanızın ne olduğunu açıklar mısınız? Asıl sorunuz "neden yerine kendi içlerine koyunDataRows
veDataReaders
koyun ?"DBNull.Value
null