2010-05-28 2 views
0

C#에서 데이터 테이블의 숫자 필드에 null 값을 삽입하는 방법은 무엇입니까?

Id Name Mob1  Mob2 
1 acp 9994564564 9568848526 

, 내 동적으로 생성 된 데이터 테이블은 다음 fileds Id,Name,Mob1,Mob2

내 데이터 테이블이 성공적으로 삽입이되어있는 경우를 포함 고려하지만이 같은 경우는, 말을 실패됩니다

Id Name Mob1  Mob2 
1 acp 9994564564 

The given value of type String from the data source cannot be converted to type decimal of the specified target column.

나는 내 데이터 테이블을 r CSV 파일을 eadingt

CSVReader reader = new CSVReader(CSVFile.PostedFile.InputStream); 
    string[] headers = reader.GetCSVLine(); 
    DataTable dt = new DataTable(); 
    foreach (string strHeader in headers) 
    { 
     dt.Columns.Add(strHeader); 
    } 
    string[] data; 
    while ((data = reader.GetCSVLine()) != null) 
    { 
     dt.Rows.Add(data); 
    } 

C#에서 대량 복사시 숫자 필드에 null 값을 삽입하는 방법을 어떤 제안

...

편집 :

나는이 dt.Columns["Mob2"].AllowDBNull = true;을 시도했지만 그렇지 않은 작동하는 것 같습니다 ...

+0

시도 NULL 값을 허용하도록 설정된 열 속성입니까? 데이터베이스에있는 열의 데이터 형식은 무엇입니까? –

+0

@ranhiru 나중에 거기에'MobileNo2 (numeric (18,0), null)'... –

+0

전화 번호를 숫자로 저장하는 것은 나쁜 생각이다. –

답변

1

를 호출하기 전에 그들이 빈 문자열이 포함 된 경우 null로 데이터 배열의 필드를 설정 manully하는

if(dr["Mob2"] == "") 
    dr["Mob2"] =null; 
1

응용 프로그램의 다른 곳에서 오류가 발생하지 않았습니까? DataColumn에 문자열에 10 진수 값이 포함되어 있음을 알면 DataType을 정의하지 않습니다.

어쨌든 오류는 문자열 - 십진 변환 (is-null 문제가 아님)이므로 두 번째 줄을 읽었을 때 null이 아닌 emty 문자열을 받는다 고 생각합니다. 데이터베이스에서 .... 당신은 내가 그것에 null 값을 할당하여 작업 가지고 Rows.Add

관련 문제