求教Sqldependency类的使用

求教Sqldependency类的使用,第1张

1、在SQL 2005上执行

ALTER DATABASE <DatabaseName>SET ENABLE_BROKER语句让相应的数据库起用监听服务,以便支持

SQLDependency特性。

2、调用SqlDependency.Start(String strConnectionString)方法,在应用程序端启用依赖监听器。

3、建立连接对象,再创建一个SqlCommand实例,最后创建SqlDependency实例,定义SqlDependency的委

托OnChange,当数据发生改变时做出相应的处理。

测试代码如下:

创建数据库环境

use master

go

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)

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6768266.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存