Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 提交后在SqlServer中存储输入的数据_C#_Html_Asp.net Mvc_Model View Controller - Fatal编程技术网

C# 提交后在SqlServer中存储输入的数据

C# 提交后在SqlServer中存储输入的数据,c#,html,asp.net-mvc,model-view-controller,C#,Html,Asp.net Mvc,Model View Controller,这里我创建了一个小应用程序。我在这里有一个HTML页面,我在这里输入数据。单击Submit按钮,数据应通过存储过程存储在数据库中。我已经在存储过程中编写了insert语句 html代码: @model USTGlobal.WorkBench.UI.Models.FloorPlanViewModel @{ ViewBag.Title = "RequestForm"; } <div> <div class="row"> <div c

这里我创建了一个小应用程序。我在这里有一个HTML页面,我在这里输入数据。单击Submit按钮,数据应通过存储过程存储在数据库中。我已经在存储过程中编写了insert语句

html代码:

@model  USTGlobal.WorkBench.UI.Models.FloorPlanViewModel 
@{
    ViewBag.Title = "RequestForm";

}
<div>
    <div class="row">
        <div class="col-lg-12">
            <h2 class="page-header">Request Form</h2>
        </div>
    </div>

    <div class="row">
        <div class="col-lg-8">
            <div class="form-horizontal">
                <div class="form-group">
                    <label class="control-label col-lg-4">Period:</label>
                    <div class="col-lg-8">
                        @Html.DropDownList("Quarter", new SelectListItem[] { (new SelectListItem() { Text = "Q1", Value = "1"}), (new SelectListItem() { Text = "Q2", Value = "2" }), (new SelectListItem() { Text = "Q3", Value = "3" }), (new SelectListItem() { Text = "Q4", Value = "4"}) }, "-- Select Quarter --", new { @class = "form-control" })
                       <br />
                         @Html.DropDownList("Year", new SelectListItem[] { (new SelectListItem() { Text = "2016", Value = "2016" }), (new SelectListItem() { Text = "2017", Value = "2017" }) }, "-- Select Year --", new { @class = "form-control" })
                     </div>
                </div>
            </div>           
            <div class="form-horizontal">
                    <div class="form-group">
                        <label class="control-label col-lg-4">Line ID:</label>
                        <div class="col-lg-8">
                           @Html.TextBoxFor(model => model.floorConfig.LineID, new { onkeypress = "return isNumberKey(event)", @class = "form-control" })
                        </div>
                    </div>
            </div>  

            <div class="form-horizontal">
                <div class="form-group">
                    <label class="control-label col-lg-4">Project:</label>
                    <div class="col-lg-8">
                       @Html.TextBoxFor(model => model.floorConfig.Project, new { onkeypress = "return isNumberKey(event)", @class = "form-control" })
                    </div>
                </div>
            </div> 


            <div class="form-horizontal">
                <div class="form-group">
                    <label class="control-label col-lg-4">Budget:</label>
                    <div class="col-lg-8">
                      @Html.TextBoxFor(model => model.floorConfig.Budget, new { onkeypress = "return isNumberKey(event)", @class = "form-control" })
                    </div>
                </div>
            </div>        


        </div>
    </div>

    <div class="row">
        <div class="col-lg-offset-4" style="padding: 10px 0px 0px 0px;">
            <input type="submit" id="btnSubmit" value="Submit" class="btn btn-lg btn-success" />
            <input type="button" id="btnCancel" value="Clear" class="btn btn-lg btn-success" />
        </div>
    </div>

</div>
如何从这里向前迈进?我是否应该调用
控制器中的存储过程?

您可以使用

观点

控制器

[HttpPost]
public ActionResult ActionName(Model model)
{
    if (ModelState.IsValid)
    {
        try
        {
            //Create SQL class and write your method (insert, update or delete etc.).
            bool check = SQLManager.Check(model);

            if (check)
            {
                //Make something
            }
            else
            {
                //Return error
                return View("Index");
            }
        }
        catch (Exception ex)
        {
            //Return error
            return View("Index");
        }
    }
    else
    {   
        //Return error
        return View("Index");
    }
}

您可以使用
DbContext.Database.ExecuteSqlCommand

此方法将执行您指定的任何命令,无论是包含SQL代码的字符串还是存储过程的名称

ExecuteSqlCommand
也接受参数数组,因此要执行存储过程,为要插入的每个新数据位获取参数值(您应该这样做),可以尝试以下操作:

List<SqlParameter> args = new List<SqlParameter>();
args.Add(new SqlParameter("@parameterName", parameterValue));
// Keep adding parameters like this

using (MyDatabaseContext db = new MyDatabaseContext())
{
    db.Database.ExecuteSqlCommand("StoredProcedureName", args.ToArray());
}
List args=new List();
Add(新的SqlParameter(“@parameterName”,parameterValue));
//继续添加这样的参数
使用(MyDatabaseContext db=new MyDatabaseContext())
{
ExecuteSqlCommand(“StoredProcedureName”,args.ToArray());
}

这将在提交按钮发布到控制器中的ActionResult函数中执行。

您有什么类型的存储过程以及要调用它的方法(通过basic
SqlConnection
或类似ORM的EF)?
[HttpPost]
public ActionResult ActionName(Model model)
{
    if (ModelState.IsValid)
    {
        try
        {
            //Create SQL class and write your method (insert, update or delete etc.).
            bool check = SQLManager.Check(model);

            if (check)
            {
                //Make something
            }
            else
            {
                //Return error
                return View("Index");
            }
        }
        catch (Exception ex)
        {
            //Return error
            return View("Index");
        }
    }
    else
    {   
        //Return error
        return View("Index");
    }
}
List<SqlParameter> args = new List<SqlParameter>();
args.Add(new SqlParameter("@parameterName", parameterValue));
// Keep adding parameters like this

using (MyDatabaseContext db = new MyDatabaseContext())
{
    db.Database.ExecuteSqlCommand("StoredProcedureName", args.ToArray());
}