Sha*_*gan 4 sql vb.net oledb sql-update
我在VB中运行时遇到奇怪的语法错误:
SQLString = "UPDATE Login SET Password = '" + PasswordTextBox.Text + "'"
SQLString += " WHERE UserName = '" + UserNameTextBox.Text + "'"
Run Code Online (Sandbox Code Playgroud)
在Username获得这部分之前被选中,是definitly在数据库中.它给出了一个例外,说明update语句中存在语法错误.任何人都知道什么是错的?
LOGIN是SQL Server中的保留字(用于登录帐户管理),因此为了在查询中使用它(即列名),您需要将其转义[],因此请[LOGIN]用作字段名称.
您永远不应该使用字符串连接并将其传递给SQL数据库,因为您将自己暴露给SQL注入攻击.
您应该使用SqlCommand对象并传递参数.请参阅此文章,了解如何执行此操作.
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
Run Code Online (Sandbox Code Playgroud)