我有一个包含用户名和“点”的数据库。我需要随意增加“积分”。我把表连接到sqldatasource。
这是我目前的代码:
With Users
.UpdateCommand = "UPDATE Users SET points = points + 1"
.Update()
End With
这很好用,除了用QueryString指定的用户名更改条目,它改变所有条目并添加一个。
sqldatasource具有以下select命令:
SelectCommand="SELECT * FROM [Users] WHERE ([username] = @username)"
此命令使得只显示具有指定用户名的用户名的条目。这是我第一次尝试SQL。任何想法或解决方案都将不胜感激。
- 编辑 -
感谢Oded的帮助,这是工作的最终解决方案:)
With Users
.UpdateParameters.Add(New Parameter("username", System.Data.DbType.String, My.Request.QueryString("username")))
.UpdateCommand = "UPDATE Users SET points = points + 1 WHERE ([username] = @username)"
.Update()
End With
答案 0 :(得分:4)
您需要指定只更新该用户行:
.UpdateCommand = "UPDATE Users SET points = points + 1 WHERE ([username] = @username)"
如果未指定WHERE
子句,UPDATE
将适用于所有现有行,如您所见。
编辑:
这是如何添加用户名参数的示例:
.UpdateCommand.Parameters.Add("@username", SqlDbType.NVarChar, 40, "The User Name");
答案 1 :(得分:1)
在UpdateCommand中添加where子句:
UpdateCommand = "UPDATE Users SET points = points + 1 WHERE ([username] = @username)"