2015-05-07 61 views
0

我有具有不同數量的同一產品的多行。 我想通過在vb.net數據表做一些數量的每個產品的單行vb.net中的一列與其他列的合併不同

+1

你能在哪裏更清晰你在做這個?它在數據庫中,所以你需要在SQL中完成它,還是在ASP.NET中?如果是後者,你的數據訪問技術是什麼?實體框架,所以你想在LINQ語法?此外,你有沒有嘗試過,因此你有一些你想獲得一些幫助的示例代碼? –

回答

0

所以,你想按產品分組和總和每組的數量?

你可以使用LINQ的GroupBy + Sum,並填寫第二個表具有相同的架構:

Dim productGroups = dt.AsEnumerable().GroupBy(Function(row) row.Field(Of String)("Product")) 
Dim aggregatedTable As DataTable = dt.Clone() ' empty table, same columns 
For Each grp In productGroups 
    Dim newRow = aggregatedTable.Rows.Add() 
    Dim sumOfQuantity As Int32 = grp.Sum(Function(row) row.Field(Of Int32)("Qty")) 
    newRow.SetField("Product", grp.Key) 
    newRow.SetField("Qty", sumOfQuantity) 
Next 

與查詢語法一樣,如果你喜歡它:

Dim productGroups = From row In dt.AsEnumerable() 
        Group row By Product = row.Field(Of String)("Product") Into Group 
+0

嘿,但如果我的DT是datatable呢? –

+0

我已經試過你的代碼,但它給了我一個錯誤,說明Group BY不是'System.data.EnumrableRowcollection(Of system.data.datarow)'的成員' –

+0

你必須至少使用。 NET 3.5能夠使用LINQ。還記得添加Imports System.Linq –

相關問題