在回发ASP.NET后向客户端发送通知

时间:2014-01-20 11:00:01

标签: c# asp.net asynchronous ado.net

我有一个UPDATE SQL事务,它使用C#.NET 4.0连接到SQL Server数据库(我目前正在使用SqlCommand.ExecuteNonQuery而不是Async所以我确定我需要它改变它)。事务执行时间很长(大约一分钟)。我有ASP.NET应用程序(Web窗体),我希望异步执行事务,同时保持用户能够与应用程序交互(浏览页面)。执行完成后,我希望向用户发出一种通知,告诉他交易已完成。

我意识到我的问题有两个部分:ADO.NET异步部分和触发应用程序在事务完成时将通知推送到客户端的部分。

实施这两个部分的最佳方法是什么?

2 个答案:

答案 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

我希望有帮助