Происходит: У меня есть таблица, состоящая из Name, ID, Comments. Каждый идентификатор уникален, если пользователь не отправляет более 1 записи. В тот момент, когда пользователь может иметь 3 строки, где идентификатор один и тот же, чтобы показать эти записи, все они были введены одним пользователем, и они принадлежат друг другу.Групповые записи данных по значению строки после разделения
Ниже я опубликую то, что я сделал первоначально, чтобы разделить их на отдельные datagridview с кнопками ниже каждого, которые в конечном итоге будут использоваться для работы с записями данных над ним.
Таким образом, это приводит к двум вещам, которые я пытаюсь выяснить, и не испытал большой удачи в ходе проб и ошибок и исследования Google.
1.) Как я могу сделать это помещать любые записи в datatable, которые имеют один и тот же идентификатор в один и тот же файл datagridview, а не создавать отдельный datagrid для каждого из них.
2.) Предполагая, что вышесказанное может быть сделано, как я мог бы, если это возможно, сделать, чтобы кнопка, образующая под каждым, соответствовала только таблице данных над ней? Могут ли каждый datagrid и кнопка, хотя и созданы программно, назначать уникальный идентификатор, который позволяет каждому соответствовать другому?
Dim dst As New DataSet
For i As Integer = 0 To DT.Rows.Count - 1
Dim intLastRow As Integer = i
If intLastRow > DT.Rows.Count - 1 Then intLastRow = DT.Rows.Count - 1
Dim dtbNew As DataTable = DT.Clone
dtbNew.TableName = DT.TableName
For j As Integer = i To intLastRow
dtbNew.ImportRow(DT.Rows(j))
Next j
dst.Tables.Add(dtbNew)
Next i
For Each table As DataTable In dst.Tables
Dim DGV As New DataGridView
Dim BTN As New Button
BTN.Text = "Show Details"
BTN.Width = 120
DGV.DataSource = table
DGV.Width = 800
DGV.Height = 80
FlowLayoutPanel1.Controls.Add(DGV)
FlowLayoutPanel1.Controls.Add(BTN)
Next
FlowLayoutPanel1.AutoScrollPosition = New Point(FlowLayoutPanel1.Top)
Ошибки
Dim DT As New DataTable
DT.Load(SQLMP)
Dim groups As IEnumerable(Of IGrouping(Of Integer, DataRow)) = DT.Select.GroupBy(Function(row) row.Field(Of Integer)("ORDER_ID"))
Необработанное исключение типа 'System.InvalidCastException' произошло в System.Data.DataSetExtensions.dll`
Дополнительная информация: Указанный литая не действует
Попытка замены 'тусклых группы в IEnumerable (Of IGrouping (целочисленного, DataRow)) = DT.Select.GroupBy (функция (строка) row.Field (Of Integer) ("ORDER_ID")) 'by' Dim groups = DT.Select.GroupBy (строка функции). Поле (Integer) ("ORDER_ID")) '. Какой тип выводится на «группы»? – VBobCat
Подождите минуту :-) какой тип поля ** "ORDER_ID" **? Если это не целое число, а строка или что-то еще, это значит, что Cast не работает ... – VBobCat
Нет целого числа. – Lee