2013-03-19 69 views
2

所以,我有一个更新面板Asp.Net Signal R - 检测数据库中的更改? Asp.net Web窗体

Update Panel 
    List View 
     Email 1 
     Email 2 
     Email 3 
      ... 

我试图做类似的GMAIL在ASP.NET中的收件箱中列表视图,只有我与挣扎是如何检测数据库更改(即发送新消息时)并将该消息推入ListView以模拟用户收到新消息(就像Gmail一样)

如何使用SignalR检测数据库更改并推送他们进入列表视图使用SignalR?可能吗?

回答

4

如果您使用的是Sql Server,请点击此链接。 http://techbrij.com/database-change-notifications-asp-net-signalr-sqldependency

它基本上使用SqlDependency订阅Sql Server中的更改。

如果您不使用Sql Server,则必须手动执行此操作。而对于视图方面,您可以使用KnockoutJS或Anngular来轻松修改列表。

//Set up dependency 
protected void Application_Start() 
{ 
     //... 
    SqlDependency.Start(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString); 
} 


protected void Application_End() 
{ 
    SqlDependency.Stop(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString); 
} 


SqlDependency dependency = new SqlDependency(command); 
dependency.OnChange += new OnChangeEventHandler(dependency_OnChange); 
2

我不认为你可以使用SignalR来检测数据库中的变化,但将更改推送到网站。使用类似SqlDependency或SQL Notification Services的东西来检测数据库中的更改,然后使用SignalR将它们推送到网页。