2 yhkqwkz446 yhkqwkz446 于 2016.02.23 11:24 提问

关于datagridview:通过更新数据源,来更新数据库
dgvHead初始化代码:
  private void dgvHeadInit(int id)
        {

            string sql1 = @"select id,
                            worktimeNo as 工序代码,
                            initialCount as 起始针数,
                            seamDistance as 车缝距离, 
                            endCount as 落回针数,
                            initialCount+seamDistance+endCount as [每小时指标(件)],
                            worktimeName as 工序名称,
                            samTime as SAM值,
                            target AS 工序指标,
                            equipment as 使用设备,
                            tool as 使用工具 
                        from product_desProductTime 
                        where  positation='头部' and pid=" + id + "";
            //string sql1 = "select worktimeNo as 工序代码,initialCount as 起始针数,seamDistance as 车缝距离, endCount as 落回针数,worktimeName as 工序名称,samTime as SAM值,target AS 工序指标,equipment as 使用设备,tool as 使用工具 from product_desProductTime where 1=2";
            //DataTable dt1 = SqlHelp.GetDataTable(CommandType.Text, sql1);
            SqlConnection cn = new SqlConnection("server=172.20.50.4;uid=sa;pwd=p4japo020;database=gsd");
            sda1 = new SqlDataAdapter(sql1, cn);
            ds1 = new DataSet();
            sda1.Fill(ds1);

            ds1.Tables[0].TableName = "product_desProductTime";



            dgvHead.DataSource = ds1.Tables[0];
            dgvHead.Columns["id"].Visible = false;
            // dgv.DataSource = dt1;//分别绑定数据源
            DataRow dr1 = ds1.Tables[0].NewRow();
            ds1.Tables[0].Rows.Add(dr1);


        }
    //更新数据集的方法
        private int UpdateByDataSet(DataSet ds, string strTblName, string strconn)
        {
            try
            {
                SqlConnection cn = new SqlConnection(strconn);
                SqlDataAdapter sda = new SqlDataAdapter();
                SqlCommand cmd = new SqlCommand(@"select id,
                            worktimeNo as 工序代码,
                            initialCount as 起始针数,
                            seamDistance as 车缝距离, 
                            endCount as 落回针数,
                            initialCount+seamDistance+endCount as [每小时指标(件)],
                            worktimeName as 工序名称,
                            samTime as SAM值,
                            target AS 工序指标,
                            equipment as 使用设备,
                            tool as 使用工具 
                        from " + strTblName+" where  positation='头部' and pid=" + id + "", cn);
                sda.SelectCommand = cmd;
                SqlCommandBuilder cb = new SqlCommandBuilder(sda);
                sda.Update(ds1,strTblName);
                return 0;
            }
            catch (Exception ee)
            {

                MessageBox.Show(ee.ToString());
                return -1;
            }
        }

                保存按钮:
                UpdateByDataSet(ds1, "product_desProductTime",strconn);

问题:为什么我点击保存按钮之后,数据库中的数据并没有修改,但是却增加了一条新的全是null的记录???求大神解答,多谢

1个回答

bdmh
bdmh   Ds   Rxr 2016.02.23 11:32

ds1.Tables[0].Rows.Add(dr1);你这不是增加了一个空行吗

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C# datagridview 与数据源绑定后对数据的,增加,删除,插入,更新
C# datagridview 与数据源绑定后对数据的,增加,删除,插入,更新C# datagridview 与数据源绑定后对数据的,增加,删除,插入,更新
DataGridView编辑后立即更新到数据库的两种方法
参考帖子:http://www.cnblogs.com/hoosway/archive/2014/06/18/DataGridView.html 小结: 1、数据绑定是双向的,也就是说如果数据源的内容变了,DataGridView也会变化;如果DataGridView修改了,数据源同样也会更新 2、DataSet可以用HasChanges来判断内容是否变化了(从上一次调用AcceptChan
Datagridview实现自动更新到数据库
针对Access数据库介绍使用方法 DataTable tb; OleDbDataAdapter da; private void bindData() { string dateStr = DateTime.Now.ToShortDateString(); tb = db.QueryTable("select [account].[id] ,[pid],[acco
datagridview 绑定数据后,更新update()问题
插入几行数据修改datagridview 后,使用dataadapter的update()老是提示SQL插入字段不能为NULL! 主键字段1,字段2,字段3 AA          1             2.5 BB          1            3.5 CC          2           2.0  用SQL 的Profiler 查看发现这样问题 发现出
C#连接MySQL数据库实现DataGridView定时更新数据——多结果集返回
本文讨论的主要问题是C#连接MySQL数据库实现 select 多结果集返回,并将结果用DataGridView定时更新。 一、实现中遇到的问题 1、刷新DataGridView显示时出错或者出现大红叉。 2、未将对象引用设置添加到对象的实例。 出现上述问题的可能原因: 1、未能正确使用委托。 2、由于select查询语句过多,导致连接关闭数据库次数频繁。 主要难点: 1、Mysql返回多结果集java和Php的较多,C#的完整代码较少。 2、MySQL中定义的表表之间的关联性比较弱,表间只有sensorI
C# WinForm DataGridView同步更新数据库 TreeView最简单的绑定数据库
C# WinForm DataGridView同步更新数据库 TreeView最简单的绑定数据库 要注意:数据库的表必须有主键。
用修改DataGridView数据并更新数据库
OleDbDataAdapter dtAdapter; private void button15_Click(object sender, EventArgs e) { string con = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=STUDENT.MDB"; s
C#winform dataGridView更新数据库
<br /><br /> <br /> dataGridView更新数据库可以分2中情况:<br /> <br />1 dataGridView更新数据库自定义数据源更新数据库,<br />2  dataGridView数据源控件更新数据库。<br />当dataGridView控件启用了编辑、删除功能,你编辑了dataGridView中到列该dataGridView对应到dataset中到数据也会跟着更新但要把数据更新到数据库还需要一些代码到支持。<br />我们先说第一种情况:dataGridView更
使用bindingsource数据绑定时datagridview单元格无法及时刷新的问题
数据绑定设置: bindingSource1.DataSource = dataset.Tables[0]; dataGridView1.DataSource = bindingSource1; checkBox1.DataBindings.Add("Checked", bin
DataGridView直接修改数据并且更新数据库
两个属性设置: 第一个:设置自动创建列,默认为True DataGridView1. AutoGenerateColumns = True; 虽然默认为True,但写下去总是好的!!!第二个:鼠标单击编辑,默认双击 DataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;防止单元格被编辑: DataGridViewCell:限制