1、在SQL 2005上执行
ALTER DATABASE <DatabaseName>SET ENABLE_BROKER语句让相应的数据库起用监听服务,以便支持
SQLDependency特性。
2、调用SqlDependency.Start(String strConnectionString)方法,在应用程序端启用依赖监听器。
3、建立连接对象,再创建一个SqlCommand实例,最后创建SqlDependency实例,定义SqlDependency的委
托OnChange,当数据发生改变时做出相应的处理。
测试代码如下:
创建数据库环境
use mastergo
create database dbTest
go
use dbTest
go
create table test(id int identity(1,1),name varchar(10))
insert into test(name)select 'aa'
insert into test(name)select 'bb'
insert into test(name)select 'cc'
insert into test(name)select 'dd'
insert into test(name)select 'ee'
go
alter database dbTest set enable_broker
应用程序代码:
using System
using System.Data
using System.Windows.Forms
using System.Data.SqlClient
namespace WindowsApplication10
{
public partial class Form1 : Form
{
//拖一个DataGridView到Form中
public Form1()
{
InitializeComponent()
}
//变量
string connString = "server=localhostuid=sapwd=sqlgisdatabase=dbTest"
System.Data.SqlClient.SqlConnection conn = null
System.Data.SqlClient.SqlCommand command = null
//出示化
private void Form1_Load(object sender, EventArgs e)
{
使用SQLDependency缓存依赖,以下是一个推SQL缓存依赖的例子,当数据库更新后缓存会自动更新void Page_Load()
{
DataTable movies=(DataTable)Cache["Movie"]
if(movie=null)
{
SqlDataAdapter adpter=new SqlDataAdatper("Select * From Movie",sqlConnection)
SqlCacheDependency sqlDepend=new SqlCacheDependency(adapter.SelectCommand)
movies=new DataTable()
//注意必须在adpter.Fill()前先建立SqlCacheDependency,否则无效
adpter.Fill(movies)
Cache.Insert("Movie",movies,sqlDepend)
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)