【发布时间】:2011-08-26 11:34:42
【问题描述】:
我以前做过,但这次不行。
我要做的就是从表中删除一个条目,如您所见,如果成功,它应该输出“ok”,(我已经手动检查了查询字符串数据和所有内容都匹配它试图删除的内容,即使所有条件也都满足),但它没有删除。
@{
var message = "";
try
{
var d = Database.Open("tgyytuyt");
var query = "DELETE FROM Cart WHERE OrderId = '" + Request.QueryString["Value"] + "' AND UserId = '" + Request.QueryString["SubValue"] + "' AND PartNumber = '" + Request.QueryString["Final"] + "'";
d.Execute(query);
message = "ok";
//Response.Redirect("~/OSM/Default.cshtml");
}
catch(Exception ex)
{
message = ex.Message;
}
}
<p>@message</p>
我做错了什么可能导致项目无法被删除?
【问题讨论】:
-
Database是什么?你有任何例外吗?这段代码运行时到底发生了什么? -
顺便说一句,值得注意的是,编写这样的代码会使您的网站以最糟糕的方式受到 SQL 注入攻击。很抱歉,如果您发现这与您的问题无关 - 但在构建 SQL 语句时看到
Request.Querystring[]要求您的网站被歼灭。 -
@Codo - 这不是 MVC。这是网页。
-
@BENDR,您是否尝试过在
d.Execute(query)上设置断点,然后将该字符串直接粘贴到 Management Studio Express 或 mySQL 查询浏览器并在那里运行?它会删除行,还是给您一些其他信息?每当我遇到 SQL 语句没有按预期执行的问题时,我的第一个调用端口就是自己针对数据库运行它并分析发生了什么。 -
大概如果它没有到达
message = "ok"那么它一定是抛出一个被捕获的错误......消息中输出了什么?