C# 我想编辑datagridview以将Dataset直接更新到DB,但始终失败

C# 我想编辑datagridview以将Dataset直接更新到DB,但始终失败,c#,datagridview,C#,Datagridview,我的问题如下 datagridview的最后一行始终是焦点,因此当我单击toolStripButton的btnSave时,我无法将最后一行数据保存到数据库中。我应该如何解决这个问题?我知道如果我使用按钮控制,我可以解决这个问题。但我想知道更多: private void btnSave_Click(object sender, EventArgs e) { dgvHead.EndEdit(); dgvHead

我的问题如下

datagridview
的最后一行始终是焦点,因此当我单击
toolStripButton
btnSave
时,我无法将最后一行数据保存到数据库中。我应该如何解决这个问题?我知道如果我使用按钮控制,我可以解决这个问题。但我想知道更多:

private void btnSave_Click(object sender, EventArgs e)
            {
                dgvHead.EndEdit();
                dgvHead.RefreshEdit();
                dgvHead.Refresh();
                dgvHead.Update();
                dgvHead.LostFocus += new EventHandler(dataGridView1_LostFocus);
                //dgvHead.ClearSelection();


            //int id = 0;
            //保存到数据库之前先判断一下主表是否有重复记录
            string fno = txtfNo.Text.Trim();
            string fname = txtPname.Text.Trim();
            int orderqty = Convert.ToInt32(txtOrderQty.Text);
            double orderc = Convert.ToDouble(txtOrderCoefficient.Text);
            Image pic = pbchef.Image;
            //主表的修改
            string sql1 = "select count(1) from desProductAttach where fno='" + fno + "' and fno!='" + args["pNo"].ToString() + "' and fname='" + fname + "' and orderqty=" + orderqty + " and orderCoefficient=" + orderc + "";
            int count = Convert.ToInt32(SqlHelp.GetValue(CommandType.Text, sql1));
            if (count != 0)
            {
                MessageBox.Show("数据库中已经存在重复记录,请修改后重新录入!");
                return;
            }
            string sql2 = @"update desProductAttach set fno='" + fno + "',fname='" + fname + "',orderqty=" + orderqty + ",orderCoefficient=" + orderc + " where id="+id+"";
            SqlHelp.ExecuteNonQuery(CommandType.Text,sql2);

           //子表的更新(通过数据源更新)
            if (ds1.HasChanges())
            {
                SqlCommandBuilder cb = new SqlCommandBuilder(sda1);
                sda1.Update(ds1.Tables[0]);
                ds1.AcceptChanges();
               // dgvHead.Update();
                MessageBox.Show("保存成功");
               // ischange = false;
            }

        }

显示一些代码,帮助您更好地完成任务!应该张贴你正在做的事情的代码。焦点一般不会妨碍db操作。@wqvincent发布代码。。然后我们可以提供帮助。.我已经发布了save_按钮代码,这不是一个常见的按钮,这是一个toolStripButton