如何使用vb将combobox和checkedlistbox保存到mysql php中

8wigbo56  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(325)

我用的是vb 2017。我尝试将combobox值和checkedlistbox项保存到数据库中。对于组合框,数据库表仅显示“system.data.datarowview”,对于checkedlistbox,则显示“system.windows.forms.checkedlistbox+objectcollection”。有人能帮我吗?我正在使用mysql phpmyadmin作为数据库。这是我在下面使用的代码。它没有显示错误。但所选项的值尚未显示在数据库表中。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Dim constr As String = "server=localhost;user=root;database=login;port=3306;password=root123;SslMode=none"
Dim conn As MySqlConnection = New MySqlConnection(constr)
Dim result As Integer
'If True Then
Try
    conn.Open()
    With {}
        Dim cmd As MySqlCommand
        For Each item In CheckedListBox1.CheckedItems
            cmd = New MySqlCommand("INSERT INTO mastersubject(name,subjectpriority) VALUES(@name,@subjectpriority)", conn)
        Next
        cmd.Parameters.AddWithValue("@name", ComboBox1.SelectedItem.ToString)
        cmd.Parameters.AddWithValue("@subjectpriority", CheckedListBox1.Items.ToString())
        result = cmd.ExecuteNonQuery()
        'conn.Close()
    End With
    'End If

    If result > 0 Then

        MsgBox("Record has been saved")

    Else
        MsgBox("Error!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
    End If

Catch ex As Exception
    Console.WriteLine(ex.ToString())
    MsgBox(ex.Message)

Finally
    conn.Close()
End Try

End Sub
j8ag8udp

j8ag8udp1#

评论和解释是一致的。

Private Sub InsertRecord()
        Dim constr As String = "server=localhost;user=root;database=login;port=3306;password=root123;SslMode=none"
        'A Using...End Using block will ensure that your data objects
        'are closed and disposed event if there is an error
        Try
            Using conn As MySqlConnection = New MySqlConnection(constr)
                'You need the new keyword to create the command
                'Pass the sql query string and the connection object to the
                'constructor of the command
                'Create the command once, only the value of the subjectpriority changes
                Using cmd As New MySqlCommand("INSERT INTO mastersubject (name, subjectpriority) VALUES (@name, @subjectpriority);", conn)
                    cmd.Parameters.AddWithValue("@name", ComboBox1.SelectedItem.ToString)
                    cmd.Parameters.Add("@subjectpriority")
                    'Open the connection as late as possible
                    conn.Open()
                    For i = 0 To CheckedListBox1.CheckedItems.Count - 1
                        Dim Result As Integer
                        'You are not adding a new parameter, just changing its value
                        cmd.Parameters("@subjecpriority").Value = CheckedListBox1.CheckedItems(i).ToString()
                        'the command will be executed for each item checked
                        Result = cmd.ExecuteNonQuery()
                        If Result > 0 Then
                            MessageBox.Show("Record has been saved")
                        Else
                            MessageBox.Show("Error!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
                        End If
                    Next
                End Using 'Disposes the command
            End Using ' closes and disposes the connection
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
End Sub

相关问题