【发布时间】:2016-03-11 20:12:04
【问题描述】:
所以我在 webmatrix 中制作了一个简单的 asp.net 网页应用程序,但我遇到了 SQL 问题。我正在处理一项任务,我们使用 microsoft asp.net 网页教程作为指导 (http://www.asp.net/web-pages/overview/getting-started/introducing-aspnet-web-pages-2/getting-started)。但是当尝试运行查询来更新数据库时,它总是失败。
我得到的错误如下:
System.FormatException: 0
第 26 行:var db = Database.Open("StarterSite");
第 27 行:var deleteCommand = "DELETE FROM Gift WHERE ID = @0";
第 28 行:db.Execute(deleteCommand, Id); 第 29 行:Response.Redirect("~/ShowDbTest");
第 30 行:}
它告诉我参数的顺序是错误的,就像它会是一个重载错误。
但我不知道哪里出了问题,所以如果有人能告诉我我犯了什么错误,那就太好了。
@{
Layout = "~/_SiteLayout.cshtml";
var gift = "";
var likeability = "";
var Id = "";
if(!IsPost){
if(!Request.QueryString["id"].IsEmpty() && Request.QueryString["id"].IsInt()){
Id = Request.QueryString["id"];
var db = Database.Open("StarterSite");
var dbCommand = "SELECT * FROM Gift WHERE ID = @0";
var row = db.QuerySingle(dbCommand, Id);
if(row != null) {
gift = row.Gift;
likeability = row.Likeability;
}
else{
Validation.AddFormError("No Gift was selected.1");
}
}
else{
Validation.AddFormError("No Gift was selected.2");
}
}
if(IsPost){
Validation.RequireField("gift", "You must enter a gift");
Validation.RequireField("likeability", "Genre is required");
Validation.RequireField("id", "No ID was submitted!");
gift = Request.Form["gift"];
likeability = Request.Form["likeability"];
Id = Request.Form["Id"];
if(Validation.IsValid()){
var db = Database.Open("StarterSite");
var updateCommand = "UPDATE Gift SET Gift=@0, Likeability=@1 WHERE ID=@2";
db.Execute(updateCommand, gift, likeability, Id);
Response.Redirect("~/showDbTest");
}
}
}
【问题讨论】:
-
您是否每次在
Request.QueryString["id"]中检查您获得的价值?
标签: c# sql asp.net sql-server asp.net-webpages