Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If NamaBukuBox.Text = " " Or PngrngBukuBox.Text = " " Or PnrbtBukuBox.Text = " " Or JmlhBukuBox.Text = " " Then
MsgBox("Isi Semua Kolom Informasi")
Else
Con.Open()
Dim query = "Insert into BukuTbl values('" & NamaBukuBox.Text & "','" & PngrngBukuBox.Text & "','" & PnrbtBukuBox.Text & "'," & JmlhBukuBox.Text & ")"
Dim cmd As SqlCommand
cmd = New SqlCommand(query, Con)
cmd.ExecuteNonQuery() '** this line is error
MsgBox("Buku Telah Ditambahkan")
Con.Close()
End If
End Sub
我不知道该怎么办是什么导致了这个错误?如何解决这个错误?这是一种非常危险的编写代码的方式。用户输入将直接插入到SQL中。如果您的用户输入任何撇号,您的SQL将失败。
例如,尝试输入Abc的输入NamaBukuBox文本框。检查生成的SQL。在最坏的情况下,用户可以注入SQL并删除数据和表。在您的示例中,可能是来自用户的输入导致SQL失败。请使用参数将用户数据输入SQL。不要在SQL中直接连接用户输入。你的SQL应该看起来像这样:
Insert into BukuTbl values(@NamaBukuBox,@PngrngBukuBox,@PnrbtBukuBox,@JmlhBukuBox)