原创:C/S架构快速开发框架通用可配置的数据修改日志解决方案
原创:C/S架构快速开发框架通用可配置的数据修改日志解决方案
数据日志介绍 我们在设计基于数据管理软件系统时,需要记录用户操作数据的历史,记录与跟踪数据变化、追溯数据修改历史,详细记录每次操作更新的内容,具体到字段,以及修改前与修改后的内容。 数据修改日志有多种实现方案,有通过程序实现的,比如在业务层或数据层搭建自动生成日志的代码,也有通过数据库实现的(使用触发器记录数据更新日志)。本文详细介绍第二种方案,C/S系统开发框架底层已经实现数据日志的生成与保存,用户不需要修改代码。 本方案的核心是通过一个日志配置表(配置数据日志字段),配置哪些表需要记录日志、修改哪些列的时候记录日志,然后程序根据配置信息,在用户保存数据时自动生成数据日志。此方案用户不需要编写任何代码,只需要配置跟踪修改的字段。 数据日志关键属性 操作用户、操作时间、表名、字段名、旧的数据、新的数据以及当前记录的主键值。 本文以开发框架提供的案例《采购订单》进行介绍。 日志自动配置界面 配置《采购订单》主表:CSFrameworkV5_Normal.dbo.tb_PO表。 选择数据库、资料表,勾选需要生成日志的字段,配置完成,点【保存数据】按钮,如下图: 配置《采购订单》明细表:CSFrameworkV5_Normal.dbo.tb_POs表。 打开《采购订单》,修改内容,保存数据后,点【查看日志】按钮,如下图: 自动跳转到《数据修改日志》查询界面: 具体实现: 在BLL层的Update方法,调用LogEditHistory.WriteLog方法生成数据日志、保存数据日志。 C# Code: /// <summary> ///保存数据 /// </summary> public override SaveResult Update(DataSet saveData) { SaveResult result = _Bridge.Update(saveData); //交给数据层处理 //保存数据成功,生成数据修改日志 if (result.Success && _WriteDataLog) LogEditHistory.WriteLog(saveData, tb_PO.__TableName, _KeyFieldName); return result; } //来源:C/S框架网 | www.csframework.com | QQ:23404761 BLL层有个标记是否需要生成数据日志: C# Code: /// <summary> /// 标记是否保存数据操作日志 /// </summary> protected bool _WriteDataLog = false; 《采购订单》的BLL层构造器中将 _WriteDataLog = True,表示需要生成数据日志: C# Code: /// <summary> /// 采购订单构造器 /// </summary> public bllPO() { _KeyFieldName = tb_PO.__KeyName; //主键字段 _SummaryTableName = tb_PO.__TableName;//表名 _Bridge = this.CreateBridge();//实例化桥接功能 _WriteDataLog = true;//保存修改日志 } //来源:C/S框架网 | www.csframework.com | QQ:23404761 作者在编写本文时发现以下2处Bug: 1. 打开LogEditHistory.cs文件,DoCompareTable方法有以下2处修改 1.1) logID变量放置到foreach循环内 1.2) sys_Log的TableName字段的值必须是当前表的表名。 2, 修改sp_sys_SearchLog存储过程,改LEFT JOIN 数据日志配置表(CSFrameworkV5_Normal数据库) SQL Code: SELECT TOP 10 * FROM dbo.sys_Log ORDER BY isid DESC SELECT TOP 10 * FROM dbo.sys_LogDtl ORDER BY isid DESC //来源:C/S框架网 | www.csframework.com | QQ:23404761 sys_Log:数据日志主表。 sys_LogDtl:数据日志明细表。 主、丛表关联字段:GUID32 扫一扫加微信
参考文档:
C/S开发框架企业版数据库改名后需要修改的存储过程、函数和视图 NET开发框架,基于ADO.NET数据持久化快速开发框架平台-C/S框架网原创产品 C/S架构进销存快速开发框架开发模板功能介绍 原创Winform快速开发框架平台Oracle版本(三层架构+C#.NET+Oracle数据库) Winform C/S架构快速开发框架Oracle版本与MsSQL版本区别 【原创】简单快速软件开发平台,C/S架构二次开发平台 C/S架构快速开发框架SQL并发测试压力测试 | www.csframework.com 【原创】进销存软件开发模板基于C/S架构快速开发框架C#+Winform+DevExpress 原创C/S架构开源软件 - C#.NET+Winform+Dev+SQL快速开发框架 组织架构、组织机构、部门管理及权限分配 - C/S架构快速开发框架 C/S架构快速开发平台提供高级查询功能 - 自定义查询条件搜索数据 Winform企业级WCF快速开发框架平台(C/S架构+WCF+DevExpress+SQL多数据库) 基于C/S架构轻量级快速开发框架软件开发平台(C#+ADO.NET+EF) MIS管理信息系统快速开发框架-C/S架构+Winform软件快速开发平台 C/S架构快速开发框架软件采购对比(采购评估文档下载)
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |