if (this.Tag.ToString() == "Add")//添加数据操作
{
//在DataGridView控件中添加新行:数据操作控件
DataGridViewRow dgvr = cc.AddDataGridViewRow(formBilltype.khsz_b, formBilltype.khsz_sql);//使用CommClass.CS中的AddDataGridViewRow方法添加新行
dgvr.Cells["Name_kh"].Value = KHXX_MC.Text.Trim();//设置客户名称
dgvr.Cells["DM_kh"].Value = Convert.ToInt32(KHXX_DM.Text);//设置客户编号
dgvr.Cells["LXR_kh"].Value = KHXX_LXR.Text.Trim();//联系人
dgvr.Cells["LXDH1_kh"].Value = Convert.ToInt32(KHXX_LXDH1.Text);//联系电话1,,,纯数字表达方式
dgvr.Cells["LXDH2_kh"].Value = Convert.ToInt32(KHXX_LXDH2.Text);//联系电话2,,,纯数字表达方式
dgvr.Cells["BZ_kh"].Value = KHXX_BZ.Text.Trim();//设置备注
dgvr.Cells["DZ_kh"].Value = KHXX_DZ.Text.Trim();//客户地址
if (cc.Commit(formBilltype.khsz_b, formBilltype.khsz_sql))//将添加操作提交数据库
{
//弹出是否继续添加提示
if (MessageBox.Show("保存成功,是否继续添加?", "软件提示", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
/////
///
已下代码2
//
public DataGridViewRow AddDataGridViewRow(DataGridView dgv, BindingSource bs)//添加新行操作,数据库
{
DataTable dt = bs.DataSource as DataTable;//将BS内容放到DT中:将dataGridView数据BS转成DataTable 的DT
DataRow dr = dt.NewRow();//实列化(创建)DR,并且指定为DT里的一个,//是定义一个dr,它是dt里的一个新行(空行,无数据,列结构与dt相同).
try
{
dt.Rows.Add(dr);
bs.DataSource = dt;
dgv.DataSource = bs;
int intRowIndex = dgv.RowCount - 1;
return dgv.Rows[intRowIndex];
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "软件提示");
throw ex;
}
}
///
///
已下代码3
///
//
public bool Commit(DataGridView dgv, BindingSource bs) //与方法AddDataGridViewRow公用一个dt内存表
{
dgv.EndEdit();
bs.EndEdit();
DataTable dt = bs.DataSource as DataTable; //因DataGridView控件无外部编辑动作,所以无需使用dgv.EndEdit()方法
try
{
if (sda.Update(dt) > 0)//判断有没有不许为空的数据传入空值
{
return true;
}
else
{
return false;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "软件提示");
return false;
}
}
传入数据时总是发生传入空值错误。。。