【发布时间】:2023-04-10 20:59:01
【问题描述】:
我正在将用户名和密码插入 vb.net 中的数据库,但它给出了这个错误:
有人可以看看是什么原因造成的吗?
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
pro = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Amin\source\repos\Nando's\Nando's\user.accdb"
connstring = pro
myconnection.ConnectionString = connstring
myconnection.Open()
command = "insert into user ([USERNAME],[PASSWORD]) values ('" & USERNAMETextBox.Text & "','" & PASSWORDTextBox.Text & "')"
Dim cmd As OleDbCommand = New OleDbCommand(command, myconnection)
cmd.ExecuteNonQuery()
cmd.Dispose()
myconnection.Close()
MsgBox("Record added", MsgBoxStyle.Information)
结束子
【问题讨论】:
-
在
PASSWORDTextBOX.Text中输入:a'); DROP TABLE user;--(真的不要)使用参数,Using语句以确保确实发生了处置,最后永远不会像那样存储密码。 -
嗯,看到错误信息就很清楚了,insert语句有问题。使用参数而不是字符串连接,你会发现做得好会让你的问题消失
-
在遵循 Codexer 的建议之前,请备份您的数据库
-
cmd.Parameters.Add(New OleDbParameter("USERNAME", CType(USERNAMETextBox.Text, String)))参数也给出相同的错误@Hursey -
不使用参数会打开闸门,你不希望这样。我的观点是有人可以在可以执行的输入中制作一个方便的查询,并且通过使用参数有助于防止这种情况发生。