【问题标题】:Webmatrix - How do you add data to an SQL database using a reusable function?Webmatrix - 如何使用可重用函数将数据添加到 SQL 数据库?
【发布时间】:2016-03-22 11:57:17
【问题描述】:

作为一项学习练习,我正在尝试使用 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 实现是否正确。有什么建议吗?我希望我没有问过愚蠢的问题。

提前致谢!

【问题讨论】:

  • 这看起来很合理。我唯一不确定的是函数文件和@function 符号。我们很久以前就使用过它,但因为它不能在成熟的视觉工作室/网页环境中正常工作而停止了。您的是否有效或提供错误消息?
  • 对不起,我应该说我没有收到任何错误消息,但它也不起作用。单击按钮时,没有任何反应。如果有比使用@functions 更聪明的方法,那么我愿意接受。你有什么建议?感谢您的宝贵时间。

标签: c# sql asp.net function webmatrix


【解决方案1】:

我认为问题可能在于没有表格。让 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>

我添加了一个表单,暂时注释掉了你的函数。首先确保帖子正常工作,然后让功能正常工作。如果帖子确实有效,他们按照我在上面写的方式,你会看到是的,它有效!显示在您的页面中。

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

【讨论】:

  • 我假设 &lt;h1&gt;Yes, it Posted&lt;h1&gt; 应该是 &lt;h1&gt;Yes, it Posted&lt;/h1&gt; ?页面加载正常,显示输入字段和按钮,但单击按钮时仍然没有任何反应。我的编辑给出了与&lt;method="post"&gt; 相关的警告,说“无法将未知元素‘方法’或元素放在此处。不确定它是否相关。
  • &lt;method="post"&gt; 更改为&lt;form action="TestArea.cshtml" method="post"&gt;,现在它可以工作了。现在去测试我的旧代码。感谢到目前为止所做的一切!编辑:像魅力一样工作:)
  • 是的,很高兴你修复了我的错误。我编辑它是正确的。请把答案标记为正确。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-12
  • 2014-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多