首页 > 解决方案 > 在 vb.net 中对 gridview 列进行排序和总结

问题描述

我只是想请求一些帮助,也许这里有人可以帮助我。我将直接进入我的查询。

所以我有一个显示column1column2.

在 column1 中包含随机数,例如每行 1-100,

同样在仅包含 1 和 0 的 column2 中(如真或假)。

在gridview中看起来像这样,

column1 | column2 |

15       |   1      |       

19       |   1      |       

26       |   0      |       

75       |   1      |       

等等等等。我想要做的是获取 column2 的总值,它在 column1 中具有 15 到 19 的值(通过括号),并在 textbox1 中显示总值。

在此示例中,第 1 列的(15-19,括号中)在第 2 列中的总值为 2。我使用的支架示例是这样的(15-19、20-24、25-29,依此类推)。

    Dim rows() As DataRow = datatable.Select("column1 = '15'")
    Dim total As Double = 0
    For i As Integer = 0 To GridView1.RowCount - 1
        total += GridView1.GetRowCellValue(i, "column2")
    Next
    TextEdit1.Text = total

上面的代码最终将第 2 列的所有值相加。

提前致谢!

标签: vb.net

解决方案


您快到了-您的datatable.Select("column1 = '15'")查询将仅返回值恰好是的行"15"(仅返回字符串值或隐式转换为数字,我忘了,这是古老且过时的API btw)-但您的代码不使用rows完全变数。

我认为这会起作用:

有关语法的参考,请参阅此页面DataTable.Select(String),因为它是独立于 VB.NET/C# 甚至 SQL 的自己的东西

    Dim rows() As DataRow = datatable.Select("column1 >= 15 AND colum1 <= 19")

    Dim total As Double = 0

    For Each row As DataRow in rows
        total += CDbl( row("colum2") )
    Next

    TextEdit1.Text = total.ToString("N0")

推荐阅读