我在VB中运行时遇到奇怪的语法错误: SQLString = "UPDATE Login SET Password = '" + PasswordTextBox.Text + "'" SQLString += " WHERE UserName = '" + UserNameTextBox.Text + "'" 在进入此部件之前检查用户名,并且确定在
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