大家好,我有这个代码,可以将datagridview读入数据库。
cmd.Parameters.AddWithValue("@NxtKinNum", Convert.ToInt32(dataGridView1.Rows[i].Cells[3].Value));
添加的行是空单元格,我试图将其添加到数据库中,其中这是一个整数...如何将其设置为将null存储到数据库中或者是否可以执行此操作那?感谢
答案 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的值。