B-S与C-S的完美结合

闲来无事突然想把以前的写的东西整理一下。
记得以前写C-S时是只加了个定时器然它时刻读数据库以便让DataGridView时刻显示更新的内容,弊端是等我想选中控件的某一部分到了时间就会刷新挺烦的。
想到B-S中的sqlCacheDependency 是等数据库里的数据内容变了之后它才会读数据库从而刷新显示的数据。于是我写了个类SqlCacheTablesForChangeNotification
怎样缓存数据库中的表不用我多说了吧。(sql2000sql2000可不一样呦)
以下是代码。
class SqlCacheTablesForChangeNotification
     {
         public static int CheckUpNodFood()
         {
             string sqlString = "select changeId from AspNet_SqlCacheTablesForChangeNotification";
             SqlConnection connection = new SqlConnection("这里写数据库连接串");
             SqlCommand command = new SqlCommand(sqlString, connection);
             SqlDataReader reader = null;
             int changeid = 0;
             try
             {
                 connection.Open();
                 reader = command.ExecuteReader();
                 if (reader.Read())
                 {
                     changeid = Convert.ToInt32(reader["changeid"]);
                 }
             }
             catch (Exception ex)
             {
                 Common.SystemLog(ex.Message);
             }
             finally
             {
                 reader.Close();
                 connection.Close();
             }
             return changeid;
         }
}

//下面试如何使用这个类
//Form1.ChangID是静态int变量
private void CheckUp()
         {
             if (Form1.ChangID == 0)
             {
                 Form1.ChangID = SqlCacheTablesForChangeNotification.CheckUpNodFood();
             }
             else if (SqlCacheTablesForChangeNotification.CheckUpNodFood() > Form1.ChangID)
             {
                 Form1.ChangID = SqlCacheTablesForChangeNotification.CheckUpNodFood();
                 Form1.ChangID = 0;
                 //这里写要根据数据库中的数据变化而执行的方法
             }
         }
然后把CheckUp放进定时器中即可。
欢迎测试,多提宝贵意见

posted on 2008-09-10 00:04  小也  阅读(813)  评论(0编辑  收藏  举报

导航