nullとSystem.DBNull.Valueの間に違いはありますか?はいの場合、それは何ですか?
私はこの動作に気づきました-
while (rdr.Read())
{
if (rdr["Id"] != null) //if (rdr["Id"] != System.DBNull.Value)
{
int x = Convert.ToInt32(rdr["Id"]);
}
}
sql datareaderを使用してデータベースからデータを取得していますが、if(rdr["Id"] != null)
返される値はなくtrue
、最終的にnullを整数としてキャストするための例外がスローされました。
しかし、これを使用すると、if (rdr["Id"] != System.DBNull.Value)
returnが返されますfalse
。
nullとSystem.DBNull.Valueの違いは何ですか?
System.Data
指示対象がないことを示す特別な値です。彼らは互いに何の関係もありません。混乱している点について詳しく説明できますか?あなたの本当の質問は、「なぜDataRows
、代わりに自分の中にDataReaders
身を置くDBNull.Value
のnull
ですか?」