簡體   English   中英

僅在特定列中獲取 Datagridview 行的總數(僅具有相同的列名)

[英]Get The Total of Datagridview Row only in Specific Columns (Only with same Column Name)

我正在嘗試使用 vb.net 獲取 datagridview 行的總數。 我能夠獲得整行的總數,但我想要的是僅獲得名為“AMOUNT”的列的總數。 感謝您!

[1]:https://i.stack.imgur.com/cFP0H.png

如果這是來自數據庫查詢,您可以將數學作為查詢的一部分進行。 如果列是動態的,它們是如何被輸入到網格中的? 如果它是 DataTable,您可以循環遍歷行,以及嵌套循環的列,您只能匯總 column.columname 為“AMOUNT”的那些。

我懷疑它是一個 DataTable 因為你不能重用列名,無論如何這里有兩種方法我會遍歷列:

       Dim dt As New DataTable
    With dt
        .Columns.Add("Amount", Type.GetType("System.Int32"))
        .Columns.Add("Count", Type.GetType("System.Int32"))
        .Columns.Add("Amount2", Type.GetType("System.Int32"))
        .Columns.Add("Total Amount", Type.GetType("System.Int32"))

        Dim r = .NewRow
        r(0) = 25
        r(1) = 50
        r(2) = 75
        r(3) = 0

        .Rows.Add(r)

        Dim r2 = .NewRow
        r2(0) = 5
        r2(1) = 10
        r2(2) = 15
        r2(3) = 0

        .Rows.Add(r2)
    End With

    Dim dt2 As New DataTable

    dt2 = dt.Copy

    For i = 0 To dt.Rows.Count - 1
        For j = 0 To dt.Columns.Count - 2
            If dt.Columns(j).ColumnName.Contains("Amount") = True Then
                dt.Rows(i)(3) = dt.Rows(i)(j) + dt.Rows(i)(3)
            End If
        Next
    Next

    GridView1.DataSource = dt
    GridView1.DataBind()

    For Each r As DataRow In dt2.Rows
        For Each c As DataColumn In dt2.Columns
            If c.ColumnName.Contains("Amount") = True AndAlso c.ColumnName.Contains("Total Amount") = False Then
                r(3) = r(c.ColumnName) + r(3)
            End If
        Next
    Next

    GridView2.DataSource = dt2
    GridView2.DataBind()

這是 output:

網格 1 使用 FOR 循環,網格 2 使用 For Each

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM