2017-11-24 1 views
0

안녕 모두들 나는 데이터베이스에 DataGridview를 읽는이 코드를 가지고 있습니다.DataGridview에서 빈 Null 정수를 변환하고 데이터베이스에 저장

cmd.Parameters.AddWithValue("@NxtKinNum", Convert.ToInt32(dataGridView1.Rows[i].Cells[3].Value)); 

추가 된 행은 빈 셀과 나는 데이터베이스에 널을 저장하도록 설정하거나이 어떻게이의 값은 정수입니다 데이터베이스 ...이 점을 추가하려고 그럴 수 없습니까? 감사합니다.

+0

값을 정수로 변환 할 필요가 없습니다. 셀의 값이 정수이면 정수가 삽입됩니다. 또한 값이'DBNull.Value' 인 경우, 널값이 컬럼에 삽입됩니다. ;' –

답변

0

저는 사용중인 데이터베이스가 SQLServer라고 가정합니다. DBNull이라는 별도의 Null 유형이 있습니다. 값에 널 (NULL)이있는 경우 열에 대해 널 (NULL)을 삽입하려는 경우, 값이 비어 있거나 널 (NULL)인지 점검하고 대신 DBNull을 삽입해야합니다. 이

if (String.IsNullOrEmpty(value)) 
{ 
    cmd.Parameters.AddWithValue("@NxtKinNum", DBNull.Value); 
} 
else 
{ 
    cmd.Parameters.AddWithValue("@NxtKinNum", value); 
} 

편집과 같은

뭔가 : 당신이 null로 세포 그런 다음 DataGridView에에 데이터 소스를 바인딩하는 경우, 기본 셀 값이 DBNull이있다. 이 경우 Reza가 제안하고 간단하게 사용하는 것을 할 수 있습니다.

cmd.Parameters.AddWithValue("@NxtKinNum", dataGridView1.Rows[i].Cells[3].Value); 
+0

당신이 시도해 봤어 @NoobCoder 'cmd.Parameters.AddWithValue ("@ NxtKinNum"dataGridView1.Rows [I] .Cells [3] .Value) : 은 그래서 매개 변수이 방법을 추가 충분? –

+0

그래, 고마워. – NoobCoder

+0

셀이 비어있을 때,'dataGridView1.Rows [i] .Cells [3] .Value'는 정확히'DBNull.Value'이며 널 체크 나 변환을 할 필요가 없다. –

0

값을 정수로 변환 할 필요가 없습니다. 필드의 값이 정수인 경우 정수가 삽입됩니다. 또한 값이 DBNull.Value이면 null 값이 열에 삽입됩니다.

그래서 매개 변수이 방법을 추가 충분 :

cmd.Parameters.AddWithValue("@NxtKinNum", dataGridView1.Rows[i].Cells[3].Value); 

참고가 TableAdapter를 사용하는 경우

당신은 CRUD 작업을 쉽게 할 수 있습니다. 예를 들어,이 게시물을보십시오 CRUD Operations using DataGridView, DataTable and TableAdapter

+0

안녕 값이 아닌 정수가 있다고 가정 할 때이 코드는 여전히 작동 할까? – NoobCoder

+0

@NoobCoder 네, 제대로 작동합니다. –

+0

전에 당신의 방법을 테스트했지만 그들은 그들이 잘못된 형식으로 내게 말한 것 같아요 – NoobCoder

0

우선, "YourColumnName"은 "Null 허용"이어야합니다. 세포가 NULL이면

cmd.Parameters.AddWithValue("@NxtKinNum",dataGridView1.Rows[i].Cells[3].Value==null ? DBNull.Value : dataGridView1.Rows[i].Cells[3].Value);

다음 DataGridView를 다른 셀의 값을 저장하는 테이블의 널 값을 저장한다.

관련 문제