我想在mvc4 on action按钮上执行插入查询, 我在我的控制器中有以下操作方法
[HttpPost]
public ActionResult Index(QuestionBank model)
{
try
{
using (var db = new AdminContext())
{
db.Questions.Add(model);
db.SaveChanges();
}
return RedirectToAction("Index");
}
catch
{
return View();
}
}
我有相关型号
public class QuestionBank
{
[Key]
////[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public string question { get; set; }
}
正如我们在简单的asp.net应用程序中所做的那样,我想在操作按钮上执行该存储过程。 我不知道我的做法是否正确,但请指导我。
答案 0 :(得分:0)
我假设您不想使用存储过程方法执行将问题插入数据库。
[HttpPost]
public ActionResult Index(QuestionBank model)
{
try
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand("[dbo].[sp_addQuestion]", conn) { CommandType = CommandType.StoredProcedure, CommandTimeout = 0 };
cmd.Parameters.Add(new SqlParameter("question", model.question) { SqlDbType = SqlDbType.Structured });
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
cmd.ExecuteNonQuery();
}
//using (var db = new AdminContext())
//{
// db.Questions.Add(model);
// db.SaveChanges();
//}
return RedirectToAction("Index");
}
catch
{
return View();
}
}
这里是相应的存储过程
ALTER PROCEDURE [dbo].[sp_addQuestion]
@question nvarchar(255)
AS
BEGIN
INSERT INTO [dbo].[QuestionBank] (Question)
VALUES (@question)
RETURN @@ERROR;
END