Как обновить использование для цикла на групповой ящик? - PullRequest
0 голосов
/ 03 мая 2019

Я собирался сделать обновление после сохранения данных с помощью sql-сервера.Я использую тот же код в методе вставки.

Это мой код

For i = 1 To Me.Controls.OfType(Of GroupBox).Count
             cmd.Parameters.AddWithValue("@dlog", dtp_date_make.Value)
Dim gb As GroupBox = CType(Me.Controls("Groupbox" & i), GroupBox)
For Each ctrl As Control In gb.Controls
                   If TypeOf ctrl Is Label Then
                       Dim lvl As Label = ctrl
                       cmd.Parameters.AddWithValue("@ptbi", lvl.Text)
                   End If
                   If TypeOf ctrl Is CheckBox Then
                       Dim chck As CheckBox = ctrl
                       cmd.Parameters.AddWithValue("@io", chck.Checked)
                   End If

                   If TypeOf ctrl Is ComboBox Then
                       Dim com As ComboBox = ctrl
                       cmd.Parameters.AddWithValue("@rem", com.Text)
                   End If
                   If TypeOf ctrl Is NumericUpDown Then
                       Dim nud As NumericUpDown = ctrl
                       cmd.Parameters.AddWithValue("@wono", nud.Value)
                   End If
               Next
               conn.Open()
               cmd.ExecuteNonQuery()
               cmd.Parameters.Clear()
               conn.Close()

Моя группа содержит от 1 до 23. После обновления Когда я смотрю на свою базу данных, Groupbox23, котораяid 23 последний id уклоняется от id 1 до id 22.

1 Ответ

0 голосов
/ 03 мая 2019

Может быть напиши как это

    For Each GrpBox As GroupBox In Controls.OfType(Of GroupBox)
        For Each Ctrl As Control In GrpBox.Controls
            Select Case Ctrl.GetType
                Case GetType(Label)
                    'do stuff with label'
                    cmd.Parameters.Add("@ptbi", SqlDbType.VarChar).Value = DirectCast(Ctrl, Label).Text

                Case GetType(CheckBox)
                    'do stuff with CheckBox'
                    cmd.Parameters.Add("@io", SqlDbType.Bit).Value = DirectCast(Ctrl, CheckBox).Checked
            End Select
        Next
    Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...