我有一个UPDATE
SQL事务,它使用C#.NET 4.0连接到SQL Server数据库(我目前正在使用SqlCommand.ExecuteNonQuery
而不是Async所以我确定我需要它改变它)。事务执行时间很长(大约一分钟)。我有ASP.NET应用程序(Web窗体),我希望异步执行事务,同时保持用户能够与应用程序交互(浏览页面)。执行完成后,我希望向用户发出一种通知,告诉他交易已完成。
我意识到我的问题有两个部分:ADO.NET异步部分和触发应用程序在事务完成时将通知推送到客户端的部分。
实施这两个部分的最佳方法是什么?
答案 0 :(得分:2)
SignalR将满足您的要求
http://www.codeproject.com/Articles/315938/Real-time-Asynchronous-Web-Pages-using-jTable-Sign
或者在SQl操作之后,您可以从Executenonquery获取响应并将其保存到隐藏字段中,在客户端,您可以使用Jquery setInterval来检查隐藏的字段值
答案 1 :(得分:1)
实际上您可以使用jquery对执行SQL事务的方法进行异步调用,然后在代码执行完成后向用户返回一条消息。 有关更多信息,请查看以下示例 Jquery代码
$.post( "PageName.aspx/UpdateMethodName", {}) //you can replace method name
.done(function( data ) {
alert(data);
});
现在,在ASPX页面中,您必须有一个用[WebMethod]属性
修饰的静态方法[WebMethod]
public static string UpdateMethodName() //method name will be called from jquery
{
// your
return "Message";
}
可在此处找到更多信息 JQuery.Post()
Using jQuery to directly call ASP.NET AJAX page methods
我希望有帮助