2010-06-17 2 views
2

일반적인 질문이 있습니다. - SQL Server 2008 DB가 있고 Null 허용 열이 있습니다. 이들 중 일부는 null이고 일부는 null이 아닙니다.C# dataset 및 DbNull 값

다음으로 DB에서 C#의 DataRow를 쿼리합니다.

이러한 null 필드의 값은 DataRow 개체에 어떤 값이 있습니까? 나는 그들이 C# "null"값을 가지고있는 것을 보았습니다. 그러나 여기 누군가가 DbNull! = C# null이라고 말했습니다 ...

제발 ... 감사합니다.

+0

당신에게 효과가 있다면 대답을 받아 들여야합니다. –

답변

4

DBNull.Value 이는 null과 동일하지 않습니다. 형식화되지 않은 데이터 세트 (의 DataRow에서),이 같은 테스트 할 수 있습니다와

DBNull.Value Field (System)

+0

예를 들어 row.Field1.trim()을 작성하면 어떻게 될까요? – Roey

+0

@Roey - DBNull.Value를 문자열로 변환 할 수 없기 때문에 InvalidCastException이라고 생각합니다. –

2

: 입력 된 데이터 세트와 DbNull.Value.Equals(dataRow["column"])

을, 널 (NULL) 컬럼을 위해, IsNull 방법이 발생, 예를 들면, myTypedDataRow.IsMyColumnNull() null 값이있는 경우 예외가 발생하기 때문에 기본적으로 실제 myTypedDataRow.MyColumn 값에 액세스하기 전에 테스트해야합니다. 이 동작은 DataSet Designer에서 열의 NullValue 속성을 설정하여 변경할 수 있습니다.