请教个问题,我开发的表单中,"工时"那一列,数据库里面,设置的数据类型为decimal,当新增数据,在工时那一列,什么也不填写时,会提示如下的错误;
我现在想实现,当什么不填写时,默认是0,请问这个代码要如何写,与工时有关的代码块如下,前两块,我分别截取的与它有关的代码,最后一块是datagridveiw中,与这有关的完整代码,请指导;
```c#
dataGridView1.Columns[1].HeaderText = "日期";
dataGridView1.Columns[2].HeaderText = "车间";
dataGridView1.Columns[3].HeaderText = "班组";
dataGridView1.Columns[4].HeaderText = "班次";
dataGridView1.Columns[5].HeaderText = "工序";
dataGridView1.Columns[6].HeaderText = "批号";
dataGridView1.Columns[7].HeaderText = "产品批号";
dataGridView1.Columns[8].HeaderText = "产品名称";
dataGridView1.Columns[9].HeaderText = "规格";
dataGridView1.Columns[10].HeaderText = "单位";
dataGridView1.Columns[11].HeaderText = "当日产量";
dataGridView1.Columns[12].HeaderText = "累积产量";
dataGridView1.Columns[13].HeaderText = "完工状态";
dataGridView1.Columns[14].HeaderText = "人数";
dataGridView1.Columns[15].HeaderText = "工时";
dataGridView1.Columns[16].HeaderText = "备注";
else if (dr.RowState == System.Data.DataRowState.Added) //增加操作;
{
strsql = @"INSERT INTO [dbo].[w_prohourcount]
([date],[workshop],[teams],[banci],[process],[batchNo],[probatchNo],[proname],[spec],[unit],[daypro],[sumpro],[state],[pax],[ulh],[note])
values
('" + Convert.ToDateTime(dr["date"].ToString()) + @"'
,'" + dr["workshop"].ToString() + @"'
,'" + dr["teams"].ToString() + @"'
,'" + dr["banci"].ToString() + @"'
,'" + dr["process"].ToString() + @"'
,'" + dr["batchNo"].ToString() + @"'
,'" + dr["probatchNo"].ToString() + @"'
,'" + dr["proname"].ToString() + @"'
,'" + dr["spec"].ToString() + @"'
,'" + dr["unit"].ToString() + @"'
,'" + dr["daypro"].ToString() + @"'
,'" + dr["sumpro"].ToString() + @"'
,'" + dr["state"].ToString() + @"'
,'" + dr["pax"].ToString() + @"'
,'" + dr["ulh"].ToString() + @"'
,'" + dr["note"].ToString() + @"')";
}
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
decimal ulh;
if (dataGridView1.Rows[e.RowIndex].Cells[15].Value == DBNull.Value)
{
ulh = 0;
}
else
{
ulh = Convert.ToDecimal(dataGridView1.Rows[e.RowIndex].Cells[15].Value);
}
}
,'" + dr["state"].ToString() + @"'
,'" + dr["pax"].ToString() + @"'
,'" + (dr["ulh"].ToString() == "" ? "0" : dr["ulh"].ToString()) + @"'
,'" + dr["note"].ToString() + @"')";
没有复杂运算的情况下用float 或double就可以了,没必要一定用decimal 。