2

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

    • 我们无法在数据库中创建计算列,也无法在数据集中成功创建计算列。如果有办法做到这一点,我们的问题就解决了。

例如:AvgSkill = Avg(Skill1, Skill2, Skill3)

  1. 由于我们似乎无法创建计算列,因此我们尝试创建一个单元格事件处理程序,该处理程序将计算新平均值,然后使用新信息更新数据库,但是一旦我们更改单元格并尝试更新数据库,我们丢失了我们添加到该行的所有数据。

我们发现 dataGridView 仅在您离开该行时更新绑定的数据源,因此当我们尝试进行更新时,它会删除该行中输入的任何内容。

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

在此先感谢您的帮助:)

-多米尼克

4

1 回答 1

4

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

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

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

;)

于 2012-09-03T20:41:20.993 回答