在行更改之前提交DataGridView中的更改

时间:2012-08-30 18:36:01

标签: c# datagridview dataset

我们正在使用绑定到数据库的DataGridView。我们试图将其中一列计算为数据库中某些其他列的平均值。

    • 我们无法在数据库中创建计算列,也无法在数据集中创建计算列。如果有办法,我们的问题就解决了。
  1. Ex:AvgSkill = Avg(技能1,技能2,技能3)

    1. 由于我们似乎无法创建计算列,因此我们尝试创建一个单元事件处理程序来计算新的平均值,然后使用新信息更新数据库,但是只要我们更改单元格,尝试更新数据库,我们丢失了我们添加到该行的所有数据。
    2. 我们已经发现dataGridView只在您离开行时更新绑定的数据源,因此当我们尝试进行更新时,它会删除在该行中输入的任何内容。

      在我们离开行之前,有没有办法强制datagridview更新事件处理程序中的绑定数据源?更新tableadapter似乎没有。

      提前感谢任何帮助:)

      -Dominique

1 个答案:

答案 0 :(得分:2)

我认为你想在单元格更改事件处理程序中执行以下操作:

    private void dgvPlayers_CellValidated(object sender, DataGridViewCellEventArgs e)
    {
         this.Validate();
    }

强制每次更改单元格时验证DataGridView。您可以通过检查e.ColumnIndex将此操作限制为特定列。您还可以包含同时进行计算所需的任何代码。