像猪一样生活

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

我的数据访问类-如何利用微软的DataAccess2

      在上一次的文章中我们在微软的dataaccess1.0的版本上作了两点改动,第一:增加一个加密类。第二,提供给用户可以反馈DataSet的几个方法。这次我们来看看这个东东是否还有新的东西可以挖掘?
      大家在做项目的过程中可能会有这样的要求,需要客户对数据的操作记录记录下来,以便以后的时候查对。那么能不能利用我们现有的这个类来实现这个功能呢?对,答案是肯定的,只要我们肯动脑筋。
      下面就让我们一起来搞定它。你会发现原来是这样。。。对,真的很简单。来吧,跟上我们的脚步。]
      第一步:为了实现监控,就需要一个简单的数据监控表,这里只是demo。真正的过程中我们可以见上很多的东西,譬如操作者、操作对象等。
      数据监控表如下
1CREATE TABLE [dbo].[WebSite_Watch_Opertion] (
2 [WatchID] [bigint] IDENTITY (11NOT NULL ,
3 [WatchOperation] [text] COLLATE Chinese_PRC_CI_AS NOT NULL ,
4 [OperationTime] [datetime] NOT NULL 
5ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

      其中OperationTime的默认值为GetDate();
      关于这个表的存储过程我这里就不详细说了。
      第二步:为了让我们现有的方法可以用。我们需要新建一个方法,这个方法就是,对,我想你猜到了,就是为数据监控而服务的。
        #region 数据监控
        
public int DataWatch(string watchsql)
        
{
            SqlParameter[] parms
={
                                 MakeInParam(
"@WatchOperation",SqlDbType.VarChar,8000,"exec "+watchsql)
                                 }
;

            SqlCommand cmd 
= CreateCommand("WebSite_Watch_Opertion_Create", parms);
            cmd.ExecuteNonQuery();
            
return (int)cmd.Parameters["ReturnValue"].Value;

        }

        
#endregion
      第三步:哦,好了,我想我们做的已经差不多了。什么?没有监控?哦。好吧,那么这样可不可以呢?
 1        #region  方法RunProc,(存储过程名),无返回结果!-------------------------------1
 2        /// <summary>
 3        /// Run stored procedure.
 4        /// 适用于那些不需要返回值得存储过程
 5        /// </summary>
 6        /// <param name="procName">Name of stored procedure.</param>
 7        /// <returns>Stored procedure return value.</returns>

 8        public int RunProc(string procName) 
 9        {
10            SqlCommand cmd = CreateCommand(procName, null);
11            cmd.ExecuteNonQuery();
12            // 这里是数据监控增加的部分 [11/30/2004]
13            DataWatch(procName);
14            //  [11/30/2004]
15            this.Close();
16            return (int)cmd.Parameters["ReturnValue"].Value;
17        }

18        #endregion
      看看有什么区别么?对只是对原有的类方法增加了一个方法调用就达到了我们的目的。那么,赶快动手把下面的都改了吧?哈哈,成功了?不是么?
      最后,让我们再回顾并思考一下,对,思考是进步的源泉!
      说明:该类除了对Webconfig中的数据库连接字符串进行加密外,还特别的加入了数据监控类的基础,但目前该版本为了不影响现有程序,所有的数据操作全部写入了表中。这是不可取的地方。那么有没有办法保证我们可以有选择的插入呢?当然可以,下回我们再说吧,相信也许你已经搞定了。呵呵;)没有关系,可以留言和偶交流交流。大家一起进步!
       声明:转载请标明,文中提及代码可以免费使用,只需要您给我留言而已。请尊重他人劳动成果!
posted on 2005-06-05 17:17  代码成就人生  阅读(351)  评论(0)    收藏  举报