博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL数据缓存依赖
阅读量:5862 次
发布时间:2019-06-19

本文共 2082 字,大约阅读时间需要 6 分钟。

hot3.png

1.检查当前数据库是否启动SQL Server Service Broker,检测方法:        

SELECT is_broker_enabled FROM sys.databases WHERE name = '数据库名'
或者
Select DATABASEpRoPERTYEX('数据库名','IsBrokerEnabled')
--
(1
为已启用,0为未启用)                 

如果当前数据库没有启动SQL Server Service Broker,可以执行:

ALTER DATABASE 数据库名 SET ENABLE_BROKER

 

2.在SQL Server中实现数据缓存依赖,需要显式调用 SqlDependency.Start()方法来启动接收依赖项更改通知的侦听器。通常在global.asax文件的 Application_Start()方法中实现调用。

void Application_Start(object sender, EventArgs e)     {        //在应用程序启动时运行的代码        System.Data.SqlClient.SqlDependency.Start(string connectionString);  //开启SQLServer数据缓存依赖    } void Application_End(object sender, EventArgs e)     {        //在应用程序关闭时运行的代码         System.Data.SqlClient.SqlDependency.Stop(string connectionString);  //关闭SQLServer数据缓存依赖    }

从上面的代码段中我们可以看出start()方法中的一个参数是数据库连接字符串,我们要将其保存在配置文件web.config中。启用SqlCacheDependency

3.在代码中使用缓存,并为其设置SqlCacheDependency依赖:

public void User_Bind()    {        DataSet ds;        string connstr=System.Configuration.ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;        if (Cache["userinfo"] == null)        {            SqlConnection conn = new SqlConnection(connstr);            SqlCommand cmd = new SqlCommand("select userName,Address from dbo.Tab_user", conn);            ds = new DataSet();            SqlDataAdapter sda = new SqlDataAdapter(cmd);            sda.Fill(ds);            //启动监听            SqlDependency.Start(connstr);            //启用更改通知            SqlCacheDependencyAdmin.EnableNotifications(connstr);            //连接到 SQL Server 数据库并为 UserInfo 更改通知准备数据库表 dbo.Tab_user            SqlCacheDependencyAdmin.EnableTableForNotifications(connstr, "dbo.Tab_user");            //制定缓存策略            SqlCacheDependency cdep = new SqlCacheDependency("UserInfo", "dbo.Tab_user");            //把查询到的数据放入缓存            Cache.Insert("UserInfo", ds, cdep);        }        else        {            ds = (DataSet)Cache["userinfo"];        }        this.gv_user.DataSource = ds;        this.gv_user.DataBind();    }

转载于:https://my.oschina.net/u/1019043/blog/133008

你可能感兴趣的文章
Oracle
查看>>
详述Linux ftp命令的使用方法
查看>>
paip.php 与js 的相似性以及为什么它们这么烂还很流行。。
查看>>
NSIS操作系统环境变量
查看>>
MSSQLSERVER服务无法启动的解决方案
查看>>
恢复数据库备份时提示日志错误
查看>>
java之内部类
查看>>
如何扩展 Visual Studio 编辑器
查看>>
document.domain跨域
查看>>
Python with ASP
查看>>
请放下你的无效社交
查看>>
PowerShell 批量签入SharePoint Document Library中的文件
查看>>
maven一键部署tomcat war包
查看>>
能产生粒子效果的CAEmitterLayer
查看>>
javaweb学习总结(四)——Http协议
查看>>
opencv2函数学习之threshold:实现图像阈值化
查看>>
Spring Security笔记:自定义登录页
查看>>
中间件的理解
查看>>
用于主题检测的临时日志(452a49c2-4455-430f-a1cc-bbcd2d1944dd - 3bfe001a-32de-4114-a6b4-4005b770f6d7)...
查看>>
Convert Sorted Array to Binary Search Tree leetcode java
查看>>