从datagridview转换空的空整数并存储到数据库中

时间:2017-11-24 04:41:59

标签: c# winforms datagridview

大家好,我有这个代码,可以将datagridview读入数据库。

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

添加的行是空单元格,我试图将其添加到数据库中,其中这是一个整数...如何将其设置为将null存储到数据库中或者是否可以执行此操作那?感谢

3 个答案:

答案 0 :(得分:0)

我将假设您使用的数据库是SQLServer。它有一个单独的Null类型,称为DBNull。如果要在值中获取null,则要为列插入null,则应检查该值是空还是null,然后插入DBNull。

像这样的东西

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

编辑:如果要将数据源绑定到DataGridView,则对于具有空值的单元格,默认单元格值为DBNull。在这种情况下,您可以执行Reza建议的操作,只需使用

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

答案 1 :(得分:0)

您无需将值转换为整数。当字段的值是整数时,将插入整数。此外,如果值为DBNull.Value,则将空值插入列中。

所以以这种方式添加参数就足够了:

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

注意

如果您使用TableAdapter,则可以更轻松地进行CRUD操作。请看一下这篇文章,例如CRUD Operations using DataGridView, DataTable and TableAdapter

答案 2 :(得分:0)

首先,在你的桌面设计" YourColumnName"应该是"允许空白"。

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

如果单元格值为null,则在表中存储空值,否则存储datagridview Cell的值。