Apakah ada perbedaan antara null dan System.DBNull.Value? Jika ya, apa itu?
Saya memperhatikan perilaku ini sekarang -
while (rdr.Read())
{
if (rdr["Id"] != null) //if (rdr["Id"] != System.DBNull.Value)
{
int x = Convert.ToInt32(rdr["Id"]);
}
}
Sementara saya mengambil data dari database menggunakan datareader sql, meskipun tidak ada nilai yang if(rdr["Id"] != null)
dikembalikan true
dan akhirnya melemparkan pengecualian untuk memberikan null sebagai integer.
Tapi, ini jika saya menggunakan if (rdr["Id"] != System.DBNull.Value)
pengembalian false
.
Apa perbedaan antara null dan System.DBNull.Value?
System.Data
, dan yang lainnya adalah nilai khusus yang menandakan kurangnya referensi. Mereka tidak ada hubungannya satu sama lain. Bisakah Anda menjelaskan apa yang membuat Anda bingung? Apakah pertanyaan Anda yang sebenarnya "mengapa melakukanDataRows
danDataReaders
menempatkanDBNull.Value
diri mereka sendiri, bukannull
?"