当前位置 : 主页 > 编程语言 > c语言 >

Update语句VB.net中的SQL语法错误

来源:互联网 收集:自由互联 发布时间:2021-06-24
我在VB中运行时遇到奇怪的语法错误: SQLString = "UPDATE Login SET Password = '" + PasswordTextBox.Text + "'" SQLString += " WHERE UserName = '" + UserNameTextBox.Text + "'" 在进入此部件之前检查用户名,并且确定在
我在VB中运行时遇到奇怪的语法错误:

SQLString = "UPDATE Login SET Password = '" + PasswordTextBox.Text + "'"
        SQLString += " WHERE UserName = '" + UserNameTextBox.Text + "'"

在进入此部件之前检查用户名,并且确定在数据库中.
它给出了一个例外,说明update语句中存在语法错误.任何人都知道什么是错的?

LOGIN是SQL Server中的保留字(用于登录帐户管理),因此为了在查询中使用它(即列名称),您需要使用[]转义它,因此使用[LOGIN]作为字段名称.

您永远不应该使用字符串连接并将其传递给SQL数据库,因为您将自己暴露于SQL Injection攻击.

您应该使用SqlCommand对象并传递参数.有关如何操作,请参阅this article.

SQLString = "UPDATE [Login] SET Password = @password "
SQLString += " WHERE UserName = @userName"

...

dbCommand.Parameters.Add("@password", SqlDbType.VarChar, 50)
dbCommand.Parameters["@password"].Value = PasswordTextBox.Text

dbCommand.Parameters.Add("@userName", SqlDbType.VarChar, 50)
dbCommand.Parameters["@userName"].Value = UserNameTextBox.Text
网友评论