【问题标题】:DataGridView Cell Editing and Updating DB (C#)DataGridView 单元格编辑和更新数据库 (C#)
【发布时间】:2015-05-28 05:09:40
【问题描述】:

我有一个功能可以在我的 dgv 中编辑一个单元格。这就是问题所在。我只能编辑一个单元格。

到目前为止,这是我的代码:

        private void datagridview1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
        Connection();
        sqlconnection.Open();

        this.datagridview1.Rows[e.RowIndex].Selected = true;
        this.rowIndex1 = e.RowIndex;
        this.datagridview1.CurrentCell = this.datagridview1.Rows[e.RowIndex].Cells[1]; //1 = only quantity can be edited, 0 = only item can be edited

        sqlcmd = new SqlCommand("UPDATE inventory_table SET item = @item, quantity = @quantity WHERE id= " + this.datagridview1.Rows[this.rowIndex1].Cells["id"].Value, sqlconnection);
        sqlcmd.Parameters.AddWithValue("@item", this.datagridview1.Rows[this.rowIndex1].Cells["item1"].Value);
        sqlcmd.Parameters.AddWithValue("@quantity", this.datagridview1.Rows[this.rowIndex1].Cells["quantity1"].Value);
        sqlcmd.ExecuteNonQuery();

        sqlconnection.Close();
        }

我错过了什么?我该怎么做才能编辑多个 dgv 单元并让它们在数据库中更新?

【问题讨论】:

  • 那么当您编辑单元格时,只有第一个单元格会保存到数据库中?开始时使用此事件调用更新不是一个好主意,但您可能希望通过为连接对象添加“使用”语句来确保您的对象得到清理
  • 你应该看看这篇文章。 blogs.msmvps.com/jcoehoorn/blog/2014/05/12/… 还有,你为什么不在 where 谓词中也使用参数?
  • 没关系。我只是想知道我的问题的答案。

标签: c# sql-server winforms datagridview


【解决方案1】:

我认为问题是由于使用了错误的事件。当用户完成对一行的编辑时,您似乎想要执行更新。

但是您的代码存在于任何单元格完成编辑后触发的事件中。我不能确定你想要什么活动。这取决于您的规格。

但我敢打赌RowValidated 活动将满足您的需求。如果没有,请查看RowStateChanged 事件。 (并尝试该事件的示例代码。它应该可以帮助您了解事件何时触发。)

【讨论】:

    【解决方案2】:

    您不能使用 gridview 更新或删除 gridview 中的多行 编辑或删除方法,我相信没有默认事件 gridview 更新或删除多条记录。

    但是您可以通过使用另一个程序来实现这一点:

    1>您可以在 gridview 页脚或网格外使用按钮 查看,在将所有更新的值放入网格单元格后,编写代码 footer_button 单击以更新gridview 中的所有记录。 2>您可以在网格上使用jQuery/ajax控件来更新textbox_leave事件上的网格记录。

    您可以寻找解决方案的一些示例

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      相关资源
      最近更新 更多