簡體   English   中英

嘗試使用ASP.NET將數據寫入數據庫 - 錯誤“必須聲明標量變量”並且不確定原因

[英]Trying to write data to a database using ASP.NET - error “Must declare the scalar variable” and unsure why

我是新手用戶,這是我第一次使用這個系統。 剛剛嘗試做一個非常簡單的功能,包括將數據輸入表單,按下提交按鈕,然后將值存儲在我的數據庫中。 任何人都可以看到我錯在哪里? 我收到了錯誤

必須聲明標量變量@forename

@{


// Initialize variables
var forename = "";
var surname = "";
var email = "";
var street = "";
var gender = "";
var towncity = "";
var postcode = "";
var cardno = "";
var expiry = "";
var securecode = "";
var password = "";

// If this is a POST request validate and process data
if (IsPost) {
    forename = Request.Form["forename"];
    surname = Request.Form["surname"];
    gender = Request.Form["gender"];
    street = Request.Form["street"];
    towncity = Request.Form["townCity"];
    postcode = Request.Form["postcode"];
    cardno = Request.Form["cardno"];
    expiry = Request.Form["expiry"];
    securecode = Request.Form["securecode"];
    password = Request.Form["password"];
    email = Request.Form["email"];

    var db = Database.Open("calcinema");
    var cmd = "INSERT INTO Account (Forename, Surname, Email, Street, Gender, TownCity, Postcode, Cardnumber, Expiry, SecureCode, Password) VALUES (@forename, @surname, @email, @street, @gender, @towncity, @postcode, @cardno, @expiry, @securecode, @password)";
    db.Execute(cmd, forename, surname, email, street, gender, towncity, postcode, cardno, expiry, securecode, password);
    Response.Redirect("~/Browse");

    }
}

它很可能是非常簡單的東西,但我看不到它,而且我遵循的模板/教程遵循相同的結構,就我所見

Webmatrix.Database按索引而不是按名稱映射查詢中的參數。 因此,不要使用@forename ,而應使用@0 ,依此類推:

var cmd = "INSERT INTO Account (Forename, Surname, Email, Street, Gender, TownCity, Postcode, Cardnumber, Expiry, SecureCode, Password) VALUES (@0, @1, @2, @3, ...)";

代碼的其他部分不應該改變。 可能不是一個好方法,但WebMatrix沒有提供其他選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM