码迷,mamicode.com
首页 > 其他好文 > 详细

如何实现系统记录变更的记录功能

时间:2014-11-05 00:00:10      阅读:488      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   io   color   ar   os   for   

在程序操作中,我们需要把记录变更操作记录下来,通用权限管理系统正好有这个表,下面参照这个表创建自己的修改记录表,表结构如下

bubuko.com,布布扣

 

 

用代码生成器的截图如下

 

bubuko.com,布布扣

 

实体类

  1 //-----------------------------------------------------------------------
  2 // <copyright file="BASEMODIFYRECORDEntity.cs" company="ZTO">
  3 //     Copyright (c) 2014 , All rights reserved.
  4 // </copyright>
  5 //-----------------------------------------------------------------------
  6 
  7 using System;
  8 using System.Collections.Generic;
  9 using System.Linq;
 10 using System.Data;
 11 
 12 namespace DotNet.Business
 13 {
 14     using DotNet.Utilities;
 15 
 16     /// <summary>
 17     /// BASEMODIFYRECORDEntity
 18     /// 
 19     /// 
 20     /// 修改纪录
 21     /// 
 22     /// 2014-11-04 版本:1.0 SongBiao 创建文件。
 23     /// 
 24     /// <author>
 25     ///     <name>SongBiao</name>
 26     ///     <date>2014-11-04</date>
 27     /// </author>
 28     /// </summary>
 29     public partial class BASEMODIFYRECORDEntity : BaseEntity
 30     {
 31         private string nEWKEY = string.Empty;
 32         /// <summary>
 33         /// NEWKEY
 34         /// </summary>
 35         public string NEWKEY
 36         {
 37             get
 38             {
 39                 return nEWKEY;
 40             }
 41             set
 42             {
 43                 nEWKEY = value;
 44             }
 45         }
 46 
 47         private string nEWVALUE = string.Empty;
 48         /// <summary>
 49         /// NEWVALUE
 50         /// </summary>
 51         public string NEWVALUE
 52         {
 53             get
 54             {
 55                 return nEWVALUE;
 56             }
 57             set
 58             {
 59                 nEWVALUE = value;
 60             }
 61         }
 62 
 63         private string cOLUMNDESCRIPTION = string.Empty;
 64         /// <summary>
 65         /// COLUMNDESCRIPTION
 66         /// </summary>
 67         public string COLUMNDESCRIPTION
 68         {
 69             get
 70             {
 71                 return cOLUMNDESCRIPTION;
 72             }
 73             set
 74             {
 75                 cOLUMNDESCRIPTION = value;
 76             }
 77         }
 78 
 79         private string createBy = string.Empty;
 80         /// <summary>
 81         /// CREATEBY
 82         /// </summary>
 83         public string CreateBy
 84         {
 85             get
 86             {
 87                 return createBy;
 88             }
 89             set
 90             {
 91                 createBy = value;
 92             }
 93         }
 94 
 95         private string oLDKEY = string.Empty;
 96         /// <summary>
 97         /// OLDKEY
 98         /// </summary>
 99         public string OLDKEY
100         {
101             get
102             {
103                 return oLDKEY;
104             }
105             set
106             {
107                 oLDKEY = value;
108             }
109         }
110 
111         private DateTime? createOn = null;
112         /// <summary>
113         /// CREATEON
114         /// </summary>
115         public DateTime? CreateOn
116         {
117             get
118             {
119                 return createOn;
120             }
121             set
122             {
123                 createOn = value;
124             }
125         }
126 
127         private string oLDVALUE = string.Empty;
128         /// <summary>
129         /// OLDVALUE
130         /// </summary>
131         public string OLDVALUE
132         {
133             get
134             {
135                 return oLDVALUE;
136             }
137             set
138             {
139                 oLDVALUE = value;
140             }
141         }
142 
143         private string createUserId = string.Empty;
144         /// <summary>
145         /// CREATEUSERID
146         /// </summary>
147         public string CreateUserId
148         {
149             get
150             {
151                 return createUserId;
152             }
153             set
154             {
155                 createUserId = value;
156             }
157         }
158 
159         private string rECORDKEY = string.Empty;
160         /// <summary>
161         /// RECORDKEY
162         /// </summary>
163         public string RECORDKEY
164         {
165             get
166             {
167                 return rECORDKEY;
168             }
169             set
170             {
171                 rECORDKEY = value;
172             }
173         }
174 
175         private string cOLUMNCODE = string.Empty;
176         /// <summary>
177         /// COLUMNCODE
178         /// </summary>
179         public string COLUMNCODE
180         {
181             get
182             {
183                 return cOLUMNCODE;
184             }
185             set
186             {
187                 cOLUMNCODE = value;
188             }
189         }
190 
191         private Decimal? id = null;
192         /// <summary>
193         /// ID
194         /// </summary>
195         public Decimal? Id
196         {
197             get
198             {
199                 return id;
200             }
201             set
202             {
203                 id = value;
204             }
205         }
206 
207         private string tABLEDESCRIPTION = string.Empty;
208         /// <summary>
209         /// TABLEDESCRIPTION
210         /// </summary>
211         public string TABLEDESCRIPTION
212         {
213             get
214             {
215                 return tABLEDESCRIPTION;
216             }
217             set
218             {
219                 tABLEDESCRIPTION = value;
220             }
221         }
222 
223         private string tABLECODE = string.Empty;
224         /// <summary>
225         /// TABLECODE
226         /// </summary>
227         public string TABLECODE
228         {
229             get
230             {
231                 return tABLECODE;
232             }
233             set
234             {
235                 tABLECODE = value;
236             }
237         }
238 
239         /// <summary>
240         /// 从数据行读取
241         /// </summary>
242         /// <param name="dr">数据行</param>
243         protected override BaseEntity GetFrom(IDataRow dr)
244         {
245             GetFromExpand(dr);
246             NEWKEY = BaseBusinessLogic.ConvertToString(dr[BASEMODIFYRECORDEntity.FieldNEWKEY]);
247             NEWVALUE = BaseBusinessLogic.ConvertToString(dr[BASEMODIFYRECORDEntity.FieldNEWVALUE]);
248             COLUMNDESCRIPTION = BaseBusinessLogic.ConvertToString(dr[BASEMODIFYRECORDEntity.FieldCOLUMNDESCRIPTION]);
249             CreateBy = BaseBusinessLogic.ConvertToString(dr[BASEMODIFYRECORDEntity.FieldCreateBy]);
250             OLDKEY = BaseBusinessLogic.ConvertToString(dr[BASEMODIFYRECORDEntity.FieldOLDKEY]);
251             CreateOn = BaseBusinessLogic.ConvertToNullableDateTime(dr[BASEMODIFYRECORDEntity.FieldCreateOn]);
252             OLDVALUE = BaseBusinessLogic.ConvertToString(dr[BASEMODIFYRECORDEntity.FieldOLDVALUE]);
253             CreateUserId = BaseBusinessLogic.ConvertToString(dr[BASEMODIFYRECORDEntity.FieldCreateUserId]);
254             RECORDKEY = BaseBusinessLogic.ConvertToString(dr[BASEMODIFYRECORDEntity.FieldRECORDKEY]);
255             COLUMNCODE = BaseBusinessLogic.ConvertToString(dr[BASEMODIFYRECORDEntity.FieldCOLUMNCODE]);
256             Id = BaseBusinessLogic.ConvertToNullableDecimal(dr[BASEMODIFYRECORDEntity.FieldId]);
257             TABLEDESCRIPTION = BaseBusinessLogic.ConvertToString(dr[BASEMODIFYRECORDEntity.FieldTABLEDESCRIPTION]);
258             TABLECODE = BaseBusinessLogic.ConvertToString(dr[BASEMODIFYRECORDEntity.FieldTABLECODE]);
259             return this;
260         }
261 
262         ///<summary>
263         /// 
264         ///</summary>
265         public static string TableName = "BASEMODIFYRECORD";
266 
267         ///<summary>
268         /// NEWKEY
269         ///</summary>
270         public static string FieldNEWKEY = "NEWKEY";
271 
272         ///<summary>
273         /// NEWVALUE
274         ///</summary>
275         public static string FieldNEWVALUE = "NEWVALUE";
276 
277         ///<summary>
278         /// COLUMNDESCRIPTION
279         ///</summary>
280         public static string FieldCOLUMNDESCRIPTION = "COLUMNDESCRIPTION";
281 
282         ///<summary>
283         /// CREATEBY
284         ///</summary>
285         public static string FieldCreateBy = "CreateBy";
286 
287         ///<summary>
288         /// OLDKEY
289         ///</summary>
290         public static string FieldOLDKEY = "OLDKEY";
291 
292         ///<summary>
293         /// CREATEON
294         ///</summary>
295         public static string FieldCreateOn = "CreateOn";
296 
297         ///<summary>
298         /// OLDVALUE
299         ///</summary>
300         public static string FieldOLDVALUE = "OLDVALUE";
301 
302         ///<summary>
303         /// CREATEUSERID
304         ///</summary>
305         public static string FieldCreateUserId = "CreateUserId";
306 
307         ///<summary>
308         /// RECORDKEY
309         ///</summary>
310         public static string FieldRECORDKEY = "RECORDKEY";
311 
312         ///<summary>
313         /// COLUMNCODE
314         ///</summary>
315         public static string FieldCOLUMNCODE = "COLUMNCODE";
316 
317         ///<summary>
318         /// ID
319         ///</summary>
320         public static string FieldId = "Id";
321 
322         ///<summary>
323         /// TABLEDESCRIPTION
324         ///</summary>
325         public static string FieldTABLEDESCRIPTION = "TABLEDESCRIPTION";
326 
327         ///<summary>
328         /// TABLECODE
329         ///</summary>
330         public static string FieldTABLECODE = "TABLECODE";
331     }
332 }

 

bubuko.com,布布扣

管理类

  1 //-----------------------------------------------------------------------
  2 // <copyright file="BASEMODIFYRECORDManager.Auto.cs" company="ZTO">
  3 //     Copyright (c) 2014 , All rights reserved.
  4 // </copyright>
  5 //-----------------------------------------------------------------------
  6 
  7 using System;
  8 using System.Collections.Generic;
  9 using System.Linq;
 10 using System.Data;
 11 
 12 namespace DotNet.Business
 13 {
 14     using DotNet.Business;
 15     using DotNet.Utilities;
 16 
 17     /// <summary>
 18     /// BASEMODIFYRECORDManager
 19     /// 
 20     /// 
 21     /// 修改纪录
 22     /// 
 23     /// 2014-11-04 版本:1.0 SongBiao 创建文件。
 24     /// 
 25     /// <author>
 26     ///     <name>SongBiao</name>
 27     ///     <date>2014-11-04</date>
 28     /// </author>
 29     /// </summary>
 30     public partial class BASEMODIFYRECORDManager : BaseManager, IBaseManager
 31     {
 32         /// <summary>
 33         /// 构造函数
 34         /// </summary>
 35         public BASEMODIFYRECORDManager()
 36         {
 37             if (base.dbHelper == null)
 38             {
 39                 base.dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType, BaseSystemInfo.UserCenterDbConnection);
 40             }
 41             if (string.IsNullOrEmpty(base.CurrentTableName))
 42             {
 43                 base.CurrentTableName = BASEMODIFYRECORDEntity.TableName;
 44             }
 45             base.PrimaryKey = "Id";
 46         }
 47 
 48         /// <summary>
 49         /// 构造函数
 50         /// <param name="tableName">指定表名</param>
 51         /// </summary>
 52         public BASEMODIFYRECORDManager(string tableName)
 53         {
 54             base.CurrentTableName = tableName;
 55         }
 56 
 57         /// <summary>
 58         /// 构造函数
 59         /// </summary>
 60         /// <param name="dbHelper">数据库连接</param>
 61         public BASEMODIFYRECORDManager(IDbHelper dbHelper): this()
 62         {
 63             DbHelper = dbHelper;
 64         }
 65 
 66         /// <summary>
 67         /// 构造函数
 68         /// </summary>
 69         /// <param name="userInfo">用户信息</param>
 70         public BASEMODIFYRECORDManager(BaseUserInfo userInfo) : this()
 71         {
 72             UserInfo = userInfo;
 73         }
 74 
 75         /// <summary>
 76         /// 构造函数
 77         /// </summary>
 78         /// <param name="userInfo">用户信息</param>
 79         /// <param name="tableName">指定表名</param>
 80         public BASEMODIFYRECORDManager(BaseUserInfo userInfo, string tableName) : this(userInfo)
 81         {
 82             base.CurrentTableName = tableName;
 83         }
 84 
 85         /// <summary>
 86         /// 构造函数
 87         /// </summary>
 88         /// <param name="dbHelper">数据库连接</param>
 89         /// <param name="userInfo">用户信息</param>
 90         public BASEMODIFYRECORDManager(IDbHelper dbHelper, BaseUserInfo userInfo) : this(dbHelper)
 91         {
 92             UserInfo = userInfo;
 93         }
 94 
 95         /// <summary>
 96         /// 构造函数
 97         /// </summary>
 98         /// <param name="dbHelper">数据库连接</param>
 99         /// <param name="userInfo">用户信息</param>
100         /// <param name="tableName">指定表名</param>
101         public BASEMODIFYRECORDManager(IDbHelper dbHelper, BaseUserInfo userInfo, string tableName) : this(dbHelper, userInfo)
102         {
103             base.CurrentTableName = tableName;
104         }
105 
106         /// <summary>
107         /// 添加, 这里可以人工干预,提高程序的性能
108         /// </summary>
109         /// <param name="entity">实体</param>
110         /// <param name="identity">自增量方式,表主键是否采用自增的策略</param>
111         /// <param name="returnId">返回主键,不返回程序允许速度会快,主要是为了主细表批量插入数据优化用的</param>
112         /// <returns>主键</returns>
113         public string Add(BASEMODIFYRECORDEntity entity, bool identity = true, bool returnId = true)
114         {
115             this.Identity = identity;
116             this.ReturnId = returnId;
117             entity.Id = int.Parse(this.AddObject(entity));
118             return entity.Id.ToString();
119         }
120 
121         /// <summary>
122         /// 更新
123         /// </summary>
124         /// <param name="entity">实体</param>
125         public int Update(BASEMODIFYRECORDEntity entity)
126         {
127             return this.UpdateObject(entity);
128         }
129 
130         /// <summary>
131         /// 获取实体
132         /// </summary>
133         /// <param name="id">主键</param>
134         public BASEMODIFYRECORDEntity GetObject(string id)
135         {
136             return GetObject(int.Parse(id));
137         }
138 
139         public BASEMODIFYRECORDEntity GetObject(int id)
140         {
141             return BaseEntity.Create<BASEMODIFYRECORDEntity>(this.GetDataTable(new KeyValuePair<string, object>(this.PrimaryKey, id)));
142         }
143 
144         /// <summary>
145         /// 添加实体
146         /// </summary>
147         /// <param name="entity">实体</param>
148         public string AddObject(BASEMODIFYRECORDEntity entity)
149         {
150             string key = string.Empty;
151             SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId);
152             sqlBuilder.BeginInsert(this.CurrentTableName, this.PrimaryKey);
153             if (!this.Identity) 
154             {
155                 // 这里已经是指定了主键了,所以不需要返回主键了
156                 sqlBuilder.ReturnId = false;
157                 sqlBuilder.SetValue(this.PrimaryKey, entity.Id);
158             }
159             else
160             {
161                 if (!this.ReturnId && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2))
162                 {
163                     if (DbHelper.CurrentDbType == CurrentDbType.Oracle)
164                     {
165                         sqlBuilder.SetFormula(this.PrimaryKey, "SEQ_" + this.CurrentTableName.ToUpper() + ".NEXTVAL ");
166                     }
167                     if (DbHelper.CurrentDbType == CurrentDbType.DB2)
168                     {
169                         sqlBuilder.SetFormula(this.PrimaryKey, "NEXT VALUE FOR SEQ_" + this.CurrentTableName.ToUpper());
170                     }
171                 }
172                 else
173                 {
174                     if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2))
175                     {
176                         BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper);
177                         entity.Id = int.Parse(sequenceManager.Increment(this.CurrentTableName));
178                         sqlBuilder.SetValue(this.PrimaryKey, entity.Id);
179                     }
180                 }
181             }
182             this.SetObject(sqlBuilder, entity);
183             if (UserInfo != null) 
184             { 
185                 sqlBuilder.SetValue(BASEMODIFYRECORDEntity.FieldCreateUserId, UserInfo.Id);
186                 sqlBuilder.SetValue(BASEMODIFYRECORDEntity.FieldCreateBy, UserInfo.Realname);
187             } 
188             sqlBuilder.SetDBNow(BASEMODIFYRECORDEntity.FieldCreateOn);
189             if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.SqlServer || DbHelper.CurrentDbType == CurrentDbType.Access))
190             {
191                 key = sqlBuilder.EndInsert().ToString();
192             }
193             else
194             {
195                 sqlBuilder.EndInsert();
196             }
197             if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2))
198             {
199                 return entity.Id.ToString();
200             }
201             return key;
202         }
203 
204         /// <summary>
205         /// 更新实体
206         /// </summary>
207         /// <param name="entity">实体</param>
208         public int UpdateObject(BASEMODIFYRECORDEntity entity)
209         {
210             SQLBuilder sqlBuilder = new SQLBuilder(DbHelper);
211             sqlBuilder.BeginUpdate(this.CurrentTableName);
212             this.SetObject(sqlBuilder, entity);
213             sqlBuilder.SetWhere(this.PrimaryKey, entity.Id);
214             return sqlBuilder.EndUpdate();
215         }
216 
217         // 这个是声明扩展方法
218         partial void SetObjectExpand(SQLBuilder sqlBuilder, BASEMODIFYRECORDEntity entity);
219         
220         /// <summary>
221         /// 设置实体
222         /// </summary>
223         /// <param name="entity">实体</param>
224         private void SetObject(SQLBuilder sqlBuilder, BASEMODIFYRECORDEntity entity)
225         {
226             SetObjectExpand(sqlBuilder, entity);
227             sqlBuilder.SetValue(BASEMODIFYRECORDEntity.FieldNEWKEY, entity.NEWKEY);
228             sqlBuilder.SetValue(BASEMODIFYRECORDEntity.FieldNEWVALUE, entity.NEWVALUE);
229             sqlBuilder.SetValue(BASEMODIFYRECORDEntity.FieldCOLUMNDESCRIPTION, entity.COLUMNDESCRIPTION);
230             sqlBuilder.SetValue(BASEMODIFYRECORDEntity.FieldOLDKEY, entity.OLDKEY);
231             sqlBuilder.SetValue(BASEMODIFYRECORDEntity.FieldOLDVALUE, entity.OLDVALUE);
232             sqlBuilder.SetValue(BASEMODIFYRECORDEntity.FieldRECORDKEY, entity.RECORDKEY);
233             sqlBuilder.SetValue(BASEMODIFYRECORDEntity.FieldCOLUMNCODE, entity.COLUMNCODE);
234             sqlBuilder.SetValue(BASEMODIFYRECORDEntity.FieldTABLEDESCRIPTION, entity.TABLEDESCRIPTION);
235             sqlBuilder.SetValue(BASEMODIFYRECORDEntity.FieldTABLECODE, entity.TABLECODE);
236         }
237 
238         /// <summary>
239         /// 删除实体
240         /// </summary>
241         /// <param name="id">主键</param>
242         /// <returns>影响行数</returns>
243         public int Delete(int id)
244         {
245             return this.Delete(new KeyValuePair<string, object>(this.PrimaryKey, id));
246         }
247     }
248 }

 

参照上面,在操作时调用对应方法,即可将记录变更的数据记录下来。这样数据出现问题就可以及时找到。

 

用通用权限管理的代码系统生成器生成代码确实非常棒,与其权限功能配合很好用,我们只需考虑业务功能即可,大大节省了开发时间。

 

如何实现系统记录变更的记录功能

标签:des   style   blog   http   io   color   ar   os   for   

原文地址:http://www.cnblogs.com/hnsongbiao/p/4075111.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!