2017-11-24 11 views
0

こんにちは皆私はデータベースにデータグリッドビューを読み取るこのコードを持っています。DataGridviewから空のヌル整数を変換してデータベースに格納する

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

私はそれをデータベースにNULLを格納するように設定するかであるかどう...加えた行が空のセルであり、私はこれの値は整数であるデータベースにこれを追加しようとしましたそれをすることはできませんか?ありがとう

+0

値を整数に変換する必要はありません。セルの値が整数の場合、整数が挿入されます。また、値が 'DBNull.Value'の場合、NULL値が列に挿入されます。 だから、パラメータをこのように追加するには十分だ: 'cmd.Parameters.AddWithValue( "NxtKinNum @"、dataGridView1.Rows [I] .Cells [3] .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あなたはこれを試してみましたか? –

+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

こんにちは、このコードはまだ動作しますnull値の代わりに整数があると仮定? – 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のセルの値を格納テーブルにNULL値を格納します。

関連する問題