Datagridview获取特定列的总和

时间:2017-09-24 05:17:05

标签: c# winforms datagridview

我想获取Datagridview 中某个特定列的所有值,而不进行任何实际单元格点击或行选择。

我基本上有2个Datagridviews; 订单和订单行。

Order Datagridview有一个名为:

的列
  

订单总额

订单行数据网格视图有一个名为:

的列
  

单价

我想得到Unit Price列的总和,并将总数转移到Order Total列中的其他datagridview。如何解决这个问题?

编辑:我使用了计算方法但得到了错误:create_date

代码:我有一个名为" unit_price"

的列
System.InvalidCastException: 'Object cannot be cast from DBNull to other types.'

我不知道导致此错误的是什么。

1 个答案:

答案 0 :(得分:0)

您需要填写您的订单行数据表1st(即您的订单行数据表必须包含每个订单项

循环通过Order DataTable并在OrderLine DataTable中找到对应的OrderLines(通过外键)

总结并将值更新为您在Order DataGridView

中创建的新列

然后使用行过滤器,更改订单行datagridview并从订单datagridview获取过滤器外键,如下所示:

    private void dgvOrder_SelectionChanged(object sender, EventArgs e)
         {
             if (dgvOrder.SelectedCells.Count > 0)
             {
                 int selectedrowindex = dgvOrder.SelectedCells[0].RowIndex;

                 DataGridViewRow selectedRow = dgvOrder.Rows[selectedrowindex];  

                  string orderlineFilter = Convert.ToString(selectedRow.Cells["columnname"].Value);           


                 (dgvOrderLine.DataSource as DataTable).DefaultView.RowFilter = string.Format("Field = '{0}'", orderlineFilter);
             }
         }