2

所以我在更新面板中有一个列表视图

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

我正在尝试在 ASP.NET 中做一个类似于 GMAIL 的收件箱,我唯一苦苦挣扎的是如何检测数据库更改(即发送新消息时)并将该消息推送到 ListView 以模拟用户收到一条新消息(就像 gmail 一样)

如何使用 SignalR 检测数据库更改并使用 SignalR 将它们推送到列表视图中?可能吗?

4

2 回答 2

4

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

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

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

//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);
于 2013-03-19T21:38:47.867 回答
2

我认为您不能使用 SignalR 来检测数据库中的更改,而是将更改推送到网站。使用SqlDependency或 SQL Notification Services 之类的东西来检测数据库中的更改,然后 SignalR 将它们推送到网页。

于 2013-03-19T21:39:59.057 回答