Можно ли зациклиться на двух датасетах в vb.net

Например код:

For Each r As DataGridViewRow In datagrid1 and datagrid2
next

Мне просто нужно зациклиться на двух видах сетки данных одновременно, чтобы распечатать отчет о кристаллах.

У вас одинаковое количество строк в двух сетках? Есть ли у вас такое же количество столбцов с одним и тем же типом данных в том же порядке?

Steve 02.07.2019 09:30

Нет, сэр. У них разные наборы данных через выбор из моей базы данных mysql.

Jim Wer 02.07.2019 09:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
216
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Важно понимать, чем является каждый из циклов, а чем нет. Вы увидите, что ваш пример бессмысленен в этом случае, но есть варианты.

Во-первых, цикл — это конструкция кода, которая позволяет выполнять часть кода несколько раз. Это верно для всех циклов. Разница в том, как цикл решает, когда прекратить цикл.

Цикл 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

Я попробую ваш код, сэр, и плохо обновлю эту тему. Спасибо и благослови вас Господь, сэр.

Jim Wer 02.07.2019 09:37

Я успешно зациклился на двух сетях данных одновременно, используя приведенный ниже код, предоставленный 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

Другие вопросы по теме