Webmatrix - 如何使用可重用函数将数据添加到 SQL 数据库?

Webmatrix - How do you add data to an SQL database using a reusable function?

作为一项学习练习,我正在尝试使用 SQL 数据库建立一个用 html 和 c# 编写的网页。我目前正在尝试使用可以从任何地方调用的可重用函数将预定义数据添加到数据库中。单击按钮时应添加数据。在我的 App_Code 文件夹中,我有一个名为 Functions.cshtml 的文件,其中包含以下内容:

@using System.Web.Mvc;
@using System.Text;
@functions {

    public static void AddNewProduct(string ProductName, string Category, double Price, double PurchasePrice, int Stock)
    {  
    var db = Database.Open("Cafeen");  
    db.Execute("INSERT INTO Products (ProductName, Category, Price, PurchasePrice, Stock) VALUES(@0, @1, @2, @3, @4)", ProductName, Category, Price, PurchasePrice, Stock); 
    Response.Redirect("~/Members/Products");
    }        
} 

在另一个名为 TestArea.cshtml 的文件中,我有以下内容:

@{
    Layout = "~/_Layout.cshtml";
    Page.title = "TestArea";
}

@if(IsPost){
    Functions.AddNewProduct("Jolly", "Sodavand", 12.00, 8.00, 120);
}

    <p><input type="submit" name="TestSubmit" value="Add product" /></p>

我以前只在 F# 中工作过,我不知道如何让这些不同的部分一起工作,或者我的 AddNewProduct 实现是否正确。有什么建议吗?我希望我没有问一个愚蠢的问题。

提前致谢!

我认为问题可能是没有表格。使 TestArea.cshtml 看起来更像:

@if(IsPost)
{
    <h1>Yes, it Posted<h1>
    // Functions.AddNew......  like you had it
}

<form method="post">
  something: <input type="text" name="enter name"><br>
  <input type="submit" name="TestSubmit" value="Add product" />
</form>

我添加了一个表单,暂时把你的函数注释掉了。首先确保 post 正常工作,然后让函数正常工作。如果 post 确实有效,就像我上面写的那样,您会看到是的,它有效!显示在您的页面中。

至于函数,我们在 app_code 中创建了一个纯 .cs 文件,其中只有 c# 代码。这意味着您必须创建 类 而不是函数,但无论如何可能更接近 F#。