WebMatrix Razor構文の1つのPOSTから複数のテーブルにデータを挿入するSQL

razor sql sql-server-ce webmatrix
WebMatrix Razor構文の1つのPOSTから複数のテーブルにデータを挿入するSQL

ユーザーが「カテゴリ」と「アイテム」を送信する2つのフォームフィールドがあります。

次のコードはカテゴリを細かく挿入します(WebMatrixのイントロPDFから変更しました)が、「item」をItemsテーブルに挿入する方法がわかりません。 また、新しいカテゴリのIDを新しいアイテム行に追加する必要があります。

これは今まで働いているコードです

@{ var db = Database.OpenFile("StarterSite.sdf");
var Category = Request["Category"]; //was name
var Item = Request["Item"]; //was description
if (IsPost) {
// Read product name.
Category = Request["Category"];
if (Category.IsEmpty()) {
Validation.AddFieldError("Category", "Category is required");
}
// Read product description.
Item = Request["Item"];
if (Item.IsEmpty()) {
Validation.AddFieldError("Item",
"Item type is required.");
}
// Define the insert query. The values to assign to the
// columns in the Products table are defined as parameters
// with the VALUES keyword.
if(Validation.Success) {
var insertQuery = "INSERT INTO Category (CategoryName) " +
"VALUES (@0)";
db.Execute(insertQuery, Category);
// Display the page that lists products.
Response.Redirect(@Href("~/success"));
}
}
}

私はこれが答えるのが非常に簡単な質問であると推測している/期待しているので、もっと詳細が必要ではないことを願っています-あれば教えてください。 ありがとう。

  3  1


ベストアンサー

WebMatrixには、最後に挿入されたレコードのIDを返すDatabase.GetLastInsertIdメソッドがあります(使用しているIDENTITY列であると仮定)。 それを使う:

db.Execute(insertQuery, Category);
var id = (int)db.GetLastInsertId(); //id is the new CategoryId
db.Execute(secondInsertQuery, param1, id);

4


タイトルとURLをコピーしました