null과 System.DBNull.Value 사이에 차이점이 있습니까? 그렇다면 무엇입니까?
이제이 동작을 발견했습니다.
while (rdr.Read())
{
if (rdr["Id"] != null) //if (rdr["Id"] != System.DBNull.Value)
{
int x = Convert.ToInt32(rdr["Id"]);
}
}
반환 값이 없지만 I는 SQL의 DataReader를 사용하여 데이터베이스에서 데이터를 검색하는 동안 if(rdr["Id"] != null)
반환 true
결국 정수로 널 캐스팅에 대한 예외 던졌다가.
그러나 이것은 내가 사용하면 if (rdr["Id"] != System.DBNull.Value)
returns false
.
null과 System.DBNull.Value의 차이점은 무엇입니까?
System.Data
다른 하나는 참조 대상이 없음을 나타내는 특수 값입니다. 그들은 서로 관련이 없습니다. 헷갈리는 부분에 대해 자세히 설명해 주시겠습니까? 당신의 진짜 문제인가 "하는 이유DataRows
와DataReaders
넣어DBNull.Value
대신 자신의 내부는null
?"