关于数据库依赖的使用

这几天做物联网,之前都是将内容放到内存中进行处理,但是有个数据不更新的问题,现在使用数据库缓存依赖进行完美解决。

首先展示下缓存类:

 //使用缓存依赖,需要在app.config中进行添加信息

        //需要使用命令,进行打开数据库表缓存
        //
        //C:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_regsql -C "data source=.;initial catalog=数据库名称;user id=sa;password=sa" -ed -et -t "数据库中的某一个表"
        public static object GetCache(string CacheKey)
        {
            System.Web.Caching.Cache objCache = HttpRuntime.Cache;
            return objCache[CacheKey];
        }
        /// <summary>
        /// 设置以缓存依赖的方式缓存数据
        /// </summary>
        /// <param name="CacheKey">索引键值</param>
        /// <param name="objObject">缓存对象</param>
        /// <param name="cacheDepen">依赖对象</param>
        public static void SetCache(string CacheKey, object objObject, System.Web.Caching.CacheDependency dep)
        {
            System.Web.Caching.Cache objCache = HttpRuntime.Cache;
            objCache.Insert(
            CacheKey,
            objObject,
            dep,
            System.Web.Caching.Cache.NoAbsoluteExpiration, //从不过期
            System.Web.Caching.Cache.NoSlidingExpiration, //禁用可调过期
            System.Web.Caching.CacheItemPriority.Default,
            null);
        }

这是简单的两个方法

下面说下使用

string UserMachine_CacheKey = "UserMachine";
            object obj2 = CacheHelper.GetCache(UserMachine_CacheKey);
            if (obj2 == null)
            {
                obj2 = CacheHelper.GetMachineData();
                if (obj2 != null)
                {
                    System.Web.Caching.CacheDependency dep = new System.Web.Caching.SqlCacheDependency("数据库名称", "数据表名称");
                    CacheHelper.SetCache(UserMachine_CacheKey, obj2, dep);
                }
            }
            var MachineDataSet = (DataSet)obj2;
           return MachineDataSet.Tables[0];

这样就可以得到数据了
GetMachineData()这个方法就是直接从数据库中获取数据

接下来就是数据库的设置了 ,如果是Winform程序,需要引用System.Web,然后再app.config或者web.config中加入这样的内容

<system.web>
    <caching>
      <sqlCacheDependency enabled="true" pollTime="6000">
        <databases>
          <add name="数据库名称" connectionStringName="strconnection"/>
        </databases>
      </sqlCacheDependency>
    </caching>
  </system.web>
<connectionStrings>
  <add name="strconnection" connectionString="Data Source = .;Initial Catalog = 数据库名称;User Id = sa;Password = sa;"/>
</connectionStrings>

接下来就是打开cmd,进行操作命令了

找到电脑中的这个文件夹中

“C:\Windows\Microsoft.NET\Framework\v4.0.30319”,然后使用cmd进入这个文件夹,然后打入这样的命令

aspnet_regsql -C "data source=.;initial catalog=数据库名称;user id=sa;password=sa" -ed -et -t "数据库表名"

如果成功就是这样

 这样就可以了。

以后使用缓存就会和数据库同步了。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值