C# 提交后在SqlServer中存储输入的数据
这里我创建了一个小应用程序。我在这里有一个HTML页面,我在这里输入数据。单击Submit按钮,数据应通过存储过程存储在数据库中。我已经在存储过程中编写了insert语句 html代码: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
@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函数中执行。您有什么类型的存储过程以及要调用它的方法(通过basicSqlConnection
或类似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());
}