Мне нужен правильный код в VB о том, как l oop через 2 datagridview в моем проекте - PullRequest
0 голосов
/ 12 апреля 2020

Я разрабатываю приложение для отеля, и одна из функций имеет 2 типа ставок: Rack Rates Rates и Weekend.

У меня есть 2 таблицы данных, в одном из них будут храниться даты, дни и сумма, а во втором - только данные. там хранятся выходные дни.

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

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

Первый код

If dgw3.Rows.Count > 0 Then
            Dim dr As DataGridViewRow = dgw3.Rows(0)
            Dim dr2 As DataGridViewRow = dgwWeekend.Rows(0)
            If dr.Cells(1).Value.ToString() = dr2.Cells(0).Value.ToString() Then
                st1 = txtTariffWeekend.Text
            Else
                st1 = txtTariffWeekDay.Text
            End If
        End If
        Dim startDay1 As Date
        Dim endDay1 As Date
        startDay1 = dtpDateIn.Value.Date
        endDay1 = dtpDateOut.Value.Date
        Dim dayCtr1 As Date
        dayCtr1 = startDay1
        Do While (dayCtr1 <= endDay1.AddDays(-1))
            dgw3.Rows.Add(dayCtr1.Date.ToString(), dayCtr1.Date.DayOfWeek.ToString(), st1)
            dayCtr1 = dayCtr1.AddDays(1)
        Loop

Второй код

If dgw3.Rows.Count > 0 Then
            Dim dr As DataGridViewRow = dgw3.Rows(0)
            Dim dr2 As DataGridViewRow = dgwWeekend.Rows(0)
            If dr.Cells(1).Value.ToString() = dr2.Cells(0).Value.ToString() Then
                st1 = txtTariffWeekend.Text
            Else
                st1 = txtTariffWeekDay.Text
            End If
            Dim startDay1 As Date
            Dim endDay1 As Date
            startDay1 = dtpDateIn.Value.Date
            endDay1 = dtpDateOut.Value.Date
            Dim dayCtr1 As Date
            dayCtr1 = startDay1
            Do While (dayCtr1 <= endDay1.AddDays(-1))
                dgw3.Rows.Add(dayCtr1.Date.ToString(), dayCtr1.Date.DayOfWeek.ToString(), st1)
                dayCtr1 = dayCtr1.AddDays(1)
                dgw3.Rows.Add(dr)
            Loop
        End If

1 Ответ

0 голосов
/ 14 апреля 2020

Думаю, я понял это, добавив этот код

 Dim startDay1 As Date
        Dim endDay1 As Date
        startDay1 = dtpDateIn.Value.Date
        endDay1 = dtpDateOut.Value.Date
        Dim dayCtr1 As Date
        dayCtr1 = startDay1
        Dim str As String
        str = Label19.Text
        Do While (dayCtr1 <= endDay1.AddDays(-1))
            con = New SqlConnection(cs)
            con.Open()
            Dim ct As String = "select Weekend from WeekendDetails where Weekend=@d1"
            cmd = New SqlCommand(ct)
            cmd.Connection = con
            cmd.Parameters.AddWithValue("@d1", str)
            rdr = cmd.ExecuteReader()
            If (rdr.Read()) Then
                st1 = txtTariffWeekend.Text
            Else
                st1 = txtTariffWeekDay.Text
            End If
            dgw3.Rows.Add(dayCtr1.Date.ToString(), dayCtr1.Date.DayOfWeek.ToString(), st1)
            dayCtr1 = dayCtr1.AddDays(1)
            str = dayCtr1.Date.DayOfWeek.ToString
        Loop
...