更新一个DataGridView字段时,如何更改另一个字段

本文关键字:字段 何更改 另一个 DataGridView 一个 更新 | 更新日期: 2023-09-27 18:25:47

我的SQL表中有两个字段:NameStatus。当我在数据网格视图和数据集上更新或更改Name中的任何内容时。它也应该更新CCD_ 4。我该怎么做?

更新一个DataGridView字段时,如何更改另一个字段

您有很多选择。

例如:

  • 您可以使用触发器在SQL Server中执行此操作
  • 您可以处理DataGridView的CellValueChanged事件
  • 如果使用类型化数据集,则可以覆盖数据表的OnColumnChanged
  • 您可以处理数据表的ColumnChanged事件

CellValueChanged示例:

基于您的评论作为使用CellValueChanged:的示例

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
    //Suppose 0 is the index of Name column and 1 is the index of Status Column
    //We check if the change is in a datagrid view row and in name column 
    //Then we change value of Status column.
    if (e.RowIndex >= 0 && e.ColumnIndex == 0)
        this.dataGridView1.Rows[e.RowIndex].Cells[1].Value = "Modified";
}

或者,即使你没有将Status列添加到网格中,你也可以使用这样的代码来更改它:

((DataRowView)this.dataGridView1.Rows[e.RowIndex].DataBoundItem)["Status"] = "Modified";

列更改示例:

ColumnChanged:为例

void table1_ColumnChanged(object sender, DataColumnChangeEventArgs e)
{
    //Check if the event is raised for Name column
    if (e.Column.ColumnName == "Name")
        e.Row["Status"] = "Modified";
}