我在WebMatrix中使用ASP.NET Razor编辑数据时遇到了一些问题 我使用Update命令编写此代码以编辑数据但不幸的是它不起作用:s:s
剃刀代码:
@{
{
var userId = Request["UserId"];
var db = Database.Open("intranet");
var query = "UPDATE Personne SET Demande = @0 WHERE UserId LIKE '%@1%'";
db.Execute(query,"refuser", userId);
}
}
html代码:
<form action="responsable.cshtml" method="post">
<input type="hidden" name="UserId" value="saadwafqui" />
<input type="submit" value="Oui" />
</form>
答案 0 :(得分:0)
您的代码容易受到SQL注入攻击。我建议你解决这个问题。你似乎也在使用一些IsPost
变量,这个变量在定义的地方并不十分清楚。
示例:
@{
var userId = Request["userid"];
var db = Database.Open("intranet");
var query = "UPDATE Personne SET Demande = @0 WHERE UserId LIKE '%' + @1 + '%'";
db.Execute(query, "refuser", userId);
}
注意LIKE子句的语法:
LIKE '%' + @1 + '%'
这将匹配中间有UserId
的所有记录。如果您只想匹配UserId开头的记录和请求中的值:
LIKE '%' + @1
如果您想要完全匹配,只需使用=
运算符而不是LIKE子句。
此外,您的标记看起来完全坏了。没有window.location
属性。也许你的意思是这样的:
<form action="responsable.cshtml" method="post">
<input type="hidden" name="userid" value="saadwafqui" />
<input type="submit" value="Oui" />
</form>
或者如果您愿意,可以使用GET请求:
<form action="responsable.cshtml" method="get">
<input type="hidden" name="userid" value="saadwafqui" />
<input type="submit" value="Oui" />
</form>