2016-10-20 7 views
0

Я использовал руководство Microsoft для создания тестового веб-приложения с использованием sqldependency. Для моей базы данных я использую базу данных Northwind. Кажется, что зависимость не работает, так как я ожидаю обновления для таблицы и метки. Кроме того, брокер включен.SQLDependency не обновляется

вот мой код:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data.SqlClient; 
using System.Web.Caching; 


namespace WebDependency 
{ 
public partial class Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     Label1.Text = "Cache Refresh: " + DateTime.Now.ToLongTimeString(); 

     SqlDependency.Start(GetConnectionString()); 

     using (SqlConnection connection = new SqlConnection(GetConnectionString())) 
     { 
      using (SqlCommand command = new SqlCommand(GetSQL(), connection)) 
      { 
       SqlCacheDependency dependency = new SqlCacheDependency(command); 

       int numberOfSeconds = 3; 
       DateTime expires = DateTime.Now.AddSeconds(numberOfSeconds); 

       Response.Cache.SetExpires(expires); 
       Response.Cache.SetCacheability(HttpCacheability.Public); 
       Response.Cache.SetValidUntilExpires(true); 

       Response.AddCacheDependency(dependency); 

       connection.Open(); 

       GridView1.DataSource = command.ExecuteReader(); 
       GridView1.DataBind(); 
      } 
     } 
    } 
    private string GetConnectionString() 
    { 
     return "Data Source=(LocalDB)\\MSSqlLocalDB;Initial Catalog=Northwind;Integrated Security=True"; 
    } 

    private string GetSQL() 
    { 
     return "Select CategoryName, Description from dbo.Categories"; 
    } 
} 
} 

ответ

1
  1. Вы должны начать SqlDependency в Application_Start из global.asa
  2. У вас нет обработчика событий для того, когда триггер срабатывает на самом деле.

Это полный пример того, что я думаю, что вы ищете.

Polling for database changes: SqlDependency, SignalR is Good