INSERT INTO语句中出现vb.net语法错误



当我试图插入访问数据库时,INSERT INTO语句中出现语法错误。发生错误的代码段是

 If (checkBox.IsChecked) Then
        cmd.CommandText = "INSERT INTO Participants([Full Name],[From],[Gender],[Category],[Event],[Weight],[DOB],[Age]) VALUES(" + textBox.Text + "," + textBox_Copy2.Text + "," + gender + "," + comboBox.SelectedItem.ToString + "," + "Kata" + "," + textBox_Copy.Text + "," + dp.Text + "," + textBox_Copy1.Text
        cmd.ExecuteNonQuery()
    End If
    If (checkBox_Copy2.IsChecked) Then
        cmd.CommandText = "INSERT INTO Participants([Full Name],[From],[Gender],[Category],[Event],[Weight],[DOB],[Age]) VALUES(" + textBox.Text + "," + textBox_Copy2.Text + "," + gender + "," + comboBox.SelectedItem.ToString + "," + "Kumite" + "," + textBox_Copy.Text + "," + dp.Text + "," + textBox_Copy1.Text
        cmd.ExecuteNonQuery()
    End If
    If (checkBox_Copy1.IsChecked) Then
        cmd.CommandText = "INSERT INTO Participants([Full Name],[From],[Gender],[Category],[Event],[Weight],[DOB],[Age]) VALUES(" + textBox.Text + "," + textBox_Copy2.Text + "," + gender + "," + comboBox.SelectedItem.ToString + "," + "Team Kata" + "," + textBox_Copy.Text + "," + dp.Text + "," + textBox_Copy1.Text
        cmd.ExecuteNonQuery()
    End If
    If (checkBox_Copy.IsChecked) Then
        cmd.CommandText = "INSERT INTO Participants([Full Name],[From],[Gender],[Category],[Event],[Weight],[DOB],[Age]) VALUES(" + textBox.Text + "," + textBox_Copy2.Text + "," + gender + "," + comboBox.SelectedItem.ToString + "," + "Team Kumite" + "," + textBox_Copy.Text + "," + dp.Text + "," + textBox_Copy1.Text
        cmd.ExecuteNonQuery()
    End If

对于文本字段,必须将VALUES子句中的值用引号括起来。注意本示例中的单引号

"INSERT INTO Participants([Full Name]) VALUES ('" + textBox.Text + "')"

但是,您最好使用参数,而不是将值正确地放在SQL语句中。看看这个https://msdn.microsoft.com/en-us/library/tyy0sz6b(v=vs.110).aspx

最新更新