简单数据缓存类(c#)

原创 2006年07月13日 15:26:00

using System;

using System.Data;

using System.Data.SqlClient;

using System.Threading;

 

namespace WJ.Lib.Base

{

     /// <summary>

     /// DateBuffer 的摘要说明。

     /// </summary>

     public class DateBuffer

     {

        int mGetDateType;

        object mobjBuffer;

        string mSql;

        SqlCommand mSqlCom;

        DateTime mFlagDT;

        int mBufferTime;

        Thread m_Thread;

 

        DataTable mdtBuffer;

 

        public DateBuffer()

        {

            mBufferTime = 2;

        }

 

        public DateBuffer(SqlCommand sSqlCom)

        {

            mBufferTime = 2;

            mSqlCom = sSqlCom;

            //从存储过程中获取数据

            mGetDateType = 2;

        }

 

 

        public DateBuffer(string sSql)

        {

            mBufferTime = 2;

            Sql = sSql;

            //从查询语句中获取数据

            mGetDateType = 1;

        }

 

        /// <summary>

        /// 设置缓存时间(分钟)

        /// </summary>

        public int BufferTime

        {

            set

            {

                mBufferTime = value;

            }

        }

 

 

        /// <summary>

        /// 获取缓存数据

        /// </summary>

        public DataTable Buffer

        {

            get

            {

                CheckDate(true);

                return mdtBuffer;

            }

        }

 

        /// <summary>

        /// 设置数据查询存储过程

        /// </summary>

        public SqlCommand SqlCom

        {

            set

            {

                if (mdtBuffer == null)

                {

                    mdtBuffer = new DataTable();

                }

                mSqlCom = value;

                //从存储过程中获取数据

                mGetDateType = 2;

                CheckDate(false);

            }

            get

            {

                return mSqlCom;

            }

        }

 

        /// <summary>

        /// 设置数据查询SQL

        /// </summary>

        public string Sql

        {

            set

            {

                if (mdtBuffer == null)

                {

                    mdtBuffer = new DataTable();

                }

                mSql = value;

                //从查询语句中获取数据

                mGetDateType = 1;

                CheckDate(false);

            }

            get

            {

                return mSql;

            }

        }

 

        /// <summary>

        /// 保持数据更新

        /// </summary>

        void CheckDate(bool CheckTime)

        {

            try

            {

                if (!CheckTime)

                {

                    //需要立即更新数据

                    UpdateDate();

                }

                else if (mFlagDT < DateTime.Now)

                {

                    //更新数据时间超时,采用线程更新数据

                    if(m_Thread == null

                        || (m_Thread.ThreadState != System.Threading.ThreadState.Running

                        && m_Thread.ThreadState != System.Threading.ThreadState.WaitSleepJoin ))

                    {

                        m_Thread = new Thread(new ThreadStart(UpdateDate));

                        m_Thread.Start();

                    }

                }

            }

            catch

            {

            }

        }

 

        void UpdateDate()

        {

            DataTable dt = null;

            try

            {

                if (mGetDateType == 1)

                {

                   //通过查询语句获取表数据

                    dt = GetDateTable(mSql);

                }

                else if(mGetDateType == 2)

                {

                   //通过存储过程获取表数据

                    dt =GetDateTable(ref mSqlCom);

                }

                mFlagDT = DateTime.Now.AddMinutes(mBufferTime);

            }

            catch

            {

            }

            finally

            {

                if (dt != null)

                {

                    mdtBuffer = dt;

                }

            }

        }

 

 

     }

}

 

C# 缓存(Cache)

注:文章只是自己刚好用到,记录下。 有需要的朋友可以去: C#中Cache的使用 应用程序缓存(cache对象)知识点http://blog.csdn.net/thecityofsky/arti...
  • u013223198
  • u013223198
  • 2016年07月08日 20:51
  • 2850

c#缓存介绍

c#缓存介绍(转) 本章导读 缓存主要是为了提高数据的读取速度。因为服务器和应用客户端之间存在着流量的瓶颈,所以读取大容量数据时,使用缓存来直接为客户端服务,可以减少客户端与服务器端的数据...
  • leonardo_dream
  • leonardo_dream
  • 2016年12月12日 15:46
  • 947

正确读取与设置缓存方法

如果你感觉到缓存的重要性,那么,恭喜你,你的技术水平已经从初级上升了一个层次,意识到性能的重要性。你不再仅限于完成用户提出的功能,而是更注重提高系统的性能和软件的质量了。但是,仅仅在软件中随便加一个m...
  • donlian
  • donlian
  • 2013年11月20日 21:58
  • 920

C语言缓冲区(缓存)详解

1.概念 缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。 缓冲区根据其对应的是输入...
  • agonie201218
  • agonie201218
  • 2015年07月26日 10:59
  • 2847

C#浅谈数据缓存管理

缓存这个东西可大可小,小到一个静态的字段,大到将整个数据库Cache起来。项目开发过程中缓存的应用到处可见,在这篇博文中笔者就来谈谈自己的项目中关于缓存实现。       最常见的缓存功能,如C...
  • ChenXi_21st
  • ChenXi_21st
  • 2013年07月24日 16:45
  • 2982

C#数据缓存介绍及Caching通用帮助类整理

C#缓存主要是为了提高数据的读取速度。因为服务器和应用客户端之间存在着流量的瓶颈,所以读取大容量数据时,使用缓存来直接为客户端服务,可以减少客户端与服务器端的数据交互,从而大大提高程序的性能,以下为工...
  • fuyifang
  • fuyifang
  • 2014年10月26日 21:48
  • 3539

服务端 缓存使用总结

服务端缓存使用总结缓存类型 localcache memcache redis 区别对比 缓存类型 使用场景 使用示例 优点 缺点 localcache 少量数据,对应用程序...
  • zhuoxiuwu
  • zhuoxiuwu
  • 2016年09月12日 18:28
  • 1736

C#中缓存的基本用法总结

本文初步探讨了C#缓存的原理及应用,并以实例加以分析总结,这些对C#初学者来说是很有必要熟练掌握的内容。具体如下: 一、概述: 缓存应用目的:缓存主要是为了提高数据的读取速度。因为服务器和...
  • CsethCRM
  • CsethCRM
  • 2015年06月23日 09:01
  • 608

ASP.NET cache缓存的用法

本文导读:在.NET运用中经常用到缓存(Cache)对象。有HttpContext.Current.Cache以及HttpRuntime.Cache,HttpRuntime.Cache是应用程序级别的...
  • mss359681091
  • mss359681091
  • 2016年04月06日 17:21
  • 8370

数据缓存类

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W...
  • xiazetong
  • xiazetong
  • 2013年06月17日 19:12
  • 401
收藏助手
不良信息举报
您举报文章:简单数据缓存类(c#)
举报原因:
原因补充:

(最多只允许输入30个字)