已有56人关注
public bool Commit(DataGridView dgv, BindingSource bs) 借用方法,为什么无法传入数据
发表在C#图书答疑 2018-12-14 《C#项目开发实战入门》第3章 快递单打印精灵——电商最佳拍档
是否精华
版块置顶:

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;
            }
        }




传入数据时总是发生传入空值错误。。。



分享到:
精彩评论 1
张成才
学分:7 LV1
2018-12-14
沙发

快1月了,,,终于知道是什么原因了


原来数据赋值过程必须先给数据库主键附值,然后在附值其它参数。

首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照