Assuming that
DataGridView.DataSource[
^] is
DataTable[
^], you can use Linq to group data by
ClientID
.
Sample code:
Dim dt As DataTable = New DataTable()
Dim dc As DataColumn = New DataColumn("Client ID", Type.GetType("System.Int32"))
dt.Columns.Add(dc)
dc = New DataColumn("Value", Type.GetType("System.Double"))
dt.Columns.Add(dc)
dt.Rows.Add(New Object(){234, 400.34})
dt.Rows.Add(New Object(){234, 500.1})
dt.Rows.Add(New Object(){222, 200.44})
dt.Rows.Add(New Object(){234, 620.34})
dt.Rows.Add(New Object(){111, 130.34})
dt.Rows.Add(New Object(){234, 450.99})
dt.Rows.Add(New Object(){111, 234.56})
dt.Rows.Add(New Object(){222, 500.45})
Dim groupedRows = dt.AsEnumerable().GroupBy(Function(a) a.Field(Of Integer)("Client ID")).[Select](Function(g) New With { _
Key .ClientID = g.Key(), _
Key .Value = g.Sum(Function(a) a.Field(Of Double)("Value")) _
}).ToList()
Now, you can use this variable as an DataSource:
DataGridView2.DataSource = groupedRows
groupedRows
return something like:
ClientID Value
234 1971.77
222 700.89
111 364.9
For further information, please see:
LINQ - Sample Queries[
^]
Good luck!
[EDIT]
Working sample[
^]