Пример сценария
У меня есть таблица в базе данных со следующими полями: - SerialNo, GroupNo, Description, Quantity. На данный момент я перебираю таблицу данных, которая была заполнена из набора данных ADO.NET, и я добавляю поля в список следующим образом...
' Gets the items from the database and created a DataSet
' The DataSet has a named DataTable called MyTable
ds = GetItems
' Item is an model in my MVC project
Dim Item As Item
' I am creating a List of items...
i As List(Of Item)
For Each row As DataRow In ds.Tables("MyTable").Rows
Item = New Item() With {
.SerialNo = If(Not IsDBNull(row("SerialNo")), CInt(row("SerialNo")), 0),
.GroupNo = If(Not IsDBNull(row("GroupNo")), CStr(row("GroupNo")), ""),
.Description = If(Not IsDBNull(row("Description")), CStr(row("Description")), ""),
.Quantity = If(Not IsDBNull(row("Quantity")), CInt(row("Quantity")), 0)
}
ai.Add(Item)
Next
Требование
Вместо получения каждой строки я хочу получить только первое вхождение каждого номера группы и вернуть этот результат в список. Например...
- Серийный № = 1 Группа № = 1 Описание = Артикул A Количество = 100
- Серийный № = 2 Группа № = 1 Описание = Позиция B Количество = 100
- Серийный № = 3 Групповой № = 1 Описание = Артикул C Количество = 100
- Серийный № = 4 Групповой № = 2 Описание = Артикул D Количество = 100
- Серийный № = 5 Групповой № = 2 Описание = Позиция E Количество = 100
- Серийный № = 6 Группа № = 3 Описание = Артикул F Количество = 100
... на самом деле следует изменить, чтобы вернуть...
- Серийный № = 1 Группа № = 1 Описание = Артикул A Количество = 100
- Серийный № = 4 Групповой № = 2 Описание = Артикул D Количество = 100
- Серийный № = 6 Группа № = 3 Описание = Артикул F Количество = 100
Я использую Visual Studio 2010 (VB.NET) с .NET 4.0.
Я пытался исследовать различные способы, но я либо застрял, пытаясь извлечь все 4 столбца, похоже, они не группируются правильно. Примечание. Я не хочу изменять запрос, чтобы он возвращал только подмножество данных. Мне нужно отфильтровать/сгруппировать его с кодом.