2012-06-26 5 views
1

SQLDataReader를 사용하여 열 데이터를 문자열 []에 삽입하고 있습니다.SQLDataReader null 값을 확인하는 방법은 무엇입니까?

그러나 일부 열 값은 null입니다. 나는 이것을 확인하는 방법을 조금 확신 할 수 없다. 왜냐하면 내가 reader [column_pos]를 할 때 값이 "n/a"라고 말하기 때문이다.

for(int i=0; i<myarray.Length;i++){ 
    if(something){ 
     myarray[i] = reader[i]; 
    } 
    else 
    { 
     myarray[i] = ""; 
    } 
} 

및 컬럼에 널 (null)이 whenver 빈 고통을 삽입 : 내가 좋아하는 뭔가를 할 수 있도록

은 무엇 체크하는 것은 내가 수행 할 수 있습니다. 또한 if (reader[0] == DBNull.Value)을 사용할 수 있습니다

답변

11

당신은 IsDBNull

for(int i=0; i<myarray.Length;i++){ 
    if(reader.IsDBNull(i)){ 
     myarray[i] = ""; 
    } 
    else 
    { 
     myarray[i] = reader[i]; 

    } 
} 
3

를 사용할 수 있습니다. 쿼리 실행을 제어 할 수 있으면 SQL ISNULL(field, default_value) 함수를 사용하여 열에서 값이 반환되는지 확인할 수 있습니다. 독자 값이 DBNULL 경우, 다른 독자 값을 사용, ""를 사용

myArray[i] = (reader[i] == DBNull.Value) ? "" : reader[0]; 

로 변환 :

C#을 위해 당신은 또한 경우/다른 속기를 사용할 수 있습니다.

0

SqlDataReader 클래스에는 IsDBNull 속성이 있습니다. 더 나은 아직

for(int i=0; i<myarray.Length;i++){ 
    if(myReader.IsDBNull(i)){ 
     myarray[i] = ""; 
    } 
    else 
    { 
     myarray[i] = reader[i]; 

    } } 

나 :

for(int i=0; i<myarray.Length;i++){ 
     myarray[i] = reader.IsDBNull(i) ? "" : reader[i]; 
} 
0
myarray[i] = reader.IsDBNull(i) || reader[i] == DBNull.Value ? string.Empty : reader[i]; 

당신은 다음과 같이 코드를 작성할 수 있습니다

관련 문제