将TextBox绑定到DataTable列的总和

时间:2012-08-23 17:34:05

标签: vb.net textbox datatable sum bindingsource

上下文

我想在我的网格下面有一个页脚来显示有关数据的一些统计数据。

如某些列的总和和其他一些的平均值。

我找到的半解决方案

我发现有两件事可以帮助我做到这一点,将数据库绑定到bindingSource,但它只是显示在textBox中的选定行...

myTextBox.DataBindings.add("Text", myGrid.DataSource,"Weight")

获取网格中列的总和,但是如果我更改网格则不会更新:S

myTextBox.Text = myGrid.DataSource.DataSource.DataSet.Tables(0).Compute("Sum(Weight)","")

问题

有两种方法可以同时使用吗?

自动更新与BindingSource一样,Sum与Compute一样?

1 个答案:

答案 0 :(得分:0)

由于您使用DataTable作为绑定源,您只需连接RowChanged事件并在那里计算更改:

Private Sub myTable_RowChanged(ByVal sender As Object, _
                              ByVal e As DataRowChangeEventArgs) _
                              Handles myTable.RowChanged
  myTextBox.Text = myTable.Compute("SUM(Weight)", String.Empty)
End Sub