Например код:
For Each r As DataGridViewRow In datagrid1 and datagrid2
next
Мне просто нужно зациклиться на двух видах сетки данных одновременно, чтобы распечатать отчет о кристаллах.
Нет, сэр. У них разные наборы данных через выбор из моей базы данных mysql.





Важно понимать, чем является каждый из циклов, а чем нет. Вы увидите, что ваш пример бессмысленен в этом случае, но есть варианты.
Во-первых, цикл — это конструкция кода, которая позволяет выполнять часть кода несколько раз. Это верно для всех циклов. Разница в том, как цикл решает, когда прекратить цикл.
Цикл For Each будет выполнять раздел кода один раз для каждого элемента в перечислимом списке, предоставляя доступ к текущему элементу через переменную управления циклом. Например, вы можете перебрать коллекцию Rows элемента DataGridView, каждый раз обращаясь к текущей строке.
Если вы хотите обработать две сетки, вам нужно сначала четко понять, что это значит, чего вы здесь не сделали. Намерено ли обрабатывать пары строк вместе, т. е. по одной из каждой сетки с соответствующими индексами, или обрабатывать каждую строку по отдельности, независимо от источника? Если это первое, вы должны использовать For lop, а затем индексировать обе Rows коллекции по счетчику цикла, например.
For i = 0 To grid1.Rows.Count - 1
Dim row1 = grid1.Rows(i)
Dim row2 = grid2.Rows(i)
'...
Next
Если это последнее, вам нужно создать единый список элементов из обеих сеток. Вы можете сделать это как часть оператора For Each, но это не имеет ничего общего с циклом, например.
For Each row In grid1.Rows.Cast(Of DataGridViewRow)().Concat(grid2.Rows.Cast(Of DataGridViewRow)())
'...
Next
Я попробую ваш код, сэр, и плохо обновлю эту тему. Спасибо и благослови вас Господь, сэр.
Я успешно зациклился на двух сетях данных одновременно, используя приведенный ниже код, предоставленный Sir.jmcilhinney.
For i = 0 To vmc.dgReservation.Rows.Count - 1
Dim r = vmc.dgReservation.Rows(i)
Dim r2 = vmc.dgBilling.Rows(i)
Dim r3 = vmc.dgPayment.Rows(i)
dt.Rows.Add(r.Cells("Check In").Value, _
r.Cells("Check Out").Value, _
r.Cells("Room No.").Value, _
r.Cells("Nights").Value, _
r.Cells("Rate").Value, _
r2.Cells("Total Room Fee").Value, _
r2.Cells("Other Charges Total").Value, _
r3.Cells("Payment Method").Value, _
r3.Cells("Total Amt. Due").Value)
Next
У вас одинаковое количество строк в двух сетках? Есть ли у вас такое же количество столбцов с одним и тем же типом данных в том же порядке?