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