我正在尝试在我的SQL语句中添加WHERE
子句,但出现错误:
关键字'WHERE'附近的语法不正确。
运行程序时。
我的SQL语句
insertCommand.CommandText = "INSERT INTO [UserInformation] (Password, NewUser) " _
& "Values('" & Pw1 & "', '" & NewUSR & "') WHERE ([Email] = '" & txtUserName2 & "') "
有什么想法吗?
答案 0 :(得分:4)
INSERT statement中WHERE子句的含义是什么? 您应该在结束使用值括号
之后删除所有内容当然,你也不应该在sql语句中使用字符串连接,因为你的代码暴露给Sql Injection
insertCommand.CommandText = "INSERT INTO [UserInformation] " & _
"(Password, NewUser) Values(@pwd,@newusr)"
insertCommand.Parameters.AddWithValue("@pwd", Pw1)
insertCommand.Parameters.AddWithValue("@new", NewUSR )
相反,如果您的计划是更新记录,那么WHERE是必需的,但查询文本是不同的
updateCommand.CommandText = "UPDATE [UserInformation] " & _
"SET Password = @pwd, NewUser = @newusr " & _
"WHERE ([Email] = @email) "
如果您使用参数来传递值,则可以删除SQL注入的可能性,但另一个很大的好处是,现在您的查询文本不会出现打开/关闭引号。您可以正确解析命令(包括参数的确切解析)到底层数据库代码。
答案 1 :(得分:0)
你需要这样一个INSERT和SELECT组合。
http://technet.microsoft.com/en-us/library/ms188263(v=sql.105).aspx