我是C#的新手。我试图在我的MVC ASP.net应用程序中进行异步存储过程调用。
这就是我的代码:
public void RevalidateRule(int ruleKey)
{
var conStr = ConfigurationManager.ConnectionStrings["ValidationModuleEntities"].ConnectionString;
using (var conn = new SqlConnection(conStr))
{
conn.Open();
SqlCommand command = new SqlCommand("[dbo].[ReValidateQuery]", conn);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("@ValidationRuleKey", ruleKey));
command.CommandTimeout = 50;
command.ExecuteNonQuery();
}
}
每当我在视图中按下保存按钮时,都必须触发它。但是,它似乎没有做任何事情。
有没有人有想法?
答案 0 :(得分:0)
因此,您希望将值从View传递给Controller并执行存储过程。我将尝试解释如何快速完成工作。 这是一个例子:
<强>控制器强>
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(string data)
{
int ruleKey = Convert.ToInt32(data);
Helper helper = new Helper();
helper.RevalidateRule(ruleKey);
return View();
}
查看强>
@using (Html.BeginForm())
{
<input type="text" name="data" />
<input type="submit" value="Submit" />
}
助手类
public class Helper
{
public void RevalidateRule(int ruleKey)
{
var conStr = ConfigurationManager.ConnectionStrings["ValidationModuleEntities"].ConnectionString;
using (var conn = new SqlConnection(conStr))
{
conn.Open();
SqlCommand command = new SqlCommand("[dbo].[ReValidateQuery]", conn);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("@ValidationRuleKey", ruleKey));
command.CommandTimeout = 50;
command.ExecuteNonQuery();
}
}
}
所以,这样你:
HelperClass
以执行存储过程View
传递到Controller
答案 1 :(得分:-2)
请在代码中写try catch。 如果存储过程中出现任何错误,您将在何处获得异常
try
{
var conStr = ConfigurationManager.ConnectionStrings["ValidationModuleEntities"].ConnectionString;
using (var conn = new SqlConnection(conStr))
{
conn.Open();
SqlCommand command = new SqlCommand("[dbo].[ReValidateQuery]", conn);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("@ValidationRuleKey", ruleKey));
command.CommandTimeout = 50;
command.ExecuteNonQuery();
}
}
catch(exception ex)
{
}