RDIFramework.NET ━ .NET快速信息化系统开发框架 记录所有操作的Sql

简介:

在实际开发或试运行过程中,我们有时需要查看或分析模块执行的所有sql,以便进行相关分析。有时我们可以通过数据库自带的软件抓取,如:SQL Server Profiler。在我们RDIFramework.NET框架中已经提供了对Sql执行的跟踪支持,只需要把“LogSQL”配置项设置为True即可。

WinForm配置如下图所示:

MVC配置为:Code\RDIFramework.MvcApp\XmlConfig\下的system.config

WebForm配置为:Code\RDIFramework.WebApp\下的Web.config

Web同时要指定:SystemInfo.StartupPath = HttpContext.Current.Server.MapPath("~/");

如下图所示

登录框架后,随便点击一些模块,再查看框架运行目录下的“\Log\Query\”文件夹下以日期开始的文本文件,如下图所示:

随便打开一个文件,就可以查看所有的sql,如下图:

方法参考:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/// <summary>
    /// 写入sql查询句日志
    /// </summary>
    /// <param name="commandText"></param>
    public  virtual  void  WriteLog( string  commandText)
    {
        string  fileName = DateTime.Now.ToString(SystemInfo.DateFormat) +  " _ "  this .FileName;
        WriteLog(commandText, fileName);
    }
 
         /// <summary>
    /// 写入sql查询句日志
    /// </summary>
    /// <param name="commandText">异常</param>
    /// <param name="fileName">文件名</param>
    public  virtual  void  WriteLog( string  commandText,  string  fileName =  null )
    {
        if  ( string .IsNullOrEmpty(fileName))
        {
            fileName = DateTime.Now.ToString(SystemInfo.DateFormat) +  " _ "  this .FileName;
        }
        string  returnValue =  string .Empty;
        // 系统里应该可以配置是否记录异常现象
        if  (!SystemInfo.LogSQL)
        {
            return ;
        }
        // 将异常信息写入本地文件中
        string  logDirectory = SystemInfo.StartupPath +  @"\\Log\\Query" ;
        if  (!System.IO.Directory.Exists(logDirectory))
        {
            System.IO.Directory.CreateDirectory(logDirectory);
        }
        string  writerFileName = logDirectory +  "\\"  + fileName;
        if  (!File.Exists(writerFileName))
        {
            FileStream FileStream =  new  FileStream(writerFileName, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
            FileStream.Close();
        }
        StreamWriter streamWriter =  new  StreamWriter(writerFileName,  true , Encoding.Default);
        streamWriter.WriteLine(DateTime.Now.ToString(SystemInfo.DateTimeFormat) +  " "  + commandText);
        streamWriter.Close();
    }
 
    public  virtual  void  WriteLog( string  commandText, IDbDataParameter[] dbParameters =  null string  fileName =  null )
    {
        // 系统里应该可以配置是否记录异常现象
        if  (!SystemInfo.LogSQL)
        {
            return ;
        }
        if  ( string .IsNullOrEmpty(fileName))
        {
            fileName = DateTime.Now.ToString(SystemInfo.DateFormat) +  " _ "  + FileName;
        }
        string  message =  string .Empty;
        message = DateTime.Now.ToString(SystemInfo.DateTimeFormat) + System.Environment.NewLine +  "commandText内容"  + System.Environment.NewLine + commandText;
        if  (dbParameters !=  null )
        {
            StringBuilder sb =  new  StringBuilder();
            foreach  ( var  parameter  in  dbParameters)
            {
                sb.AppendLine(parameter.ParameterName +  "="  + parameter.Value);
            }
            message += System.Environment.NewLine +  "dbParameters内容"  + System.Environment.NewLine + sb.ToString();
        }
        string  logDirectory = SystemInfo.StartupPath +  @"\Log\Query" ;
        if  (!System.IO.Directory.Exists(logDirectory))
        {
            System.IO.Directory.CreateDirectory(logDirectory);
        }
        string  writerFileName = logDirectory +  "\\"  + fileName;
        if  (!File.Exists(writerFileName))
        {
            FileStream FileStream =  new  FileStream(writerFileName, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
            FileStream.Close();
        }
        StreamWriter streamWriter =  new  StreamWriter(writerFileName,  true , Encoding.Default);
        streamWriter.WriteLine(DateTime.Now.ToString(SystemInfo.DateTimeFormat) +  " "  + message);
        streamWriter.Close();
    }

  

  参考文章:  

RDIFramework.NET — 基于.NET的快速信息化系统开发框架 — 系列目录

RDIFramework.NET平台代码生成器V3.0版本全新发布-更新于20160518(提供下载)

RDIFramework.NET ━ .NET快速信息化系统开发框架钜献 V3.0 版本强势发布

RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件介绍

RDIFramework.NET框架SOA解决方案(集Windows服务、WinForm形式与IIS形式发布)-分布式应用

  视频列表:

  第1部分、框架在不同数据库中的配置

第1.1讲、RDIFramework.NET框架在SqlServer2008+中的配置与运行讲解

第1.2讲、RDIFramework.NET框架在Oracle11g+中的配置与运行讲解

第1.3讲、RDIFramework.NET框架在MySql 5.0+ 中的配置与运行讲解

第2部分、框架基于代码生成器的开发

第2.1讲、RDIFramework.NET框架基于代码生成器业逻辑层代码的生成

第2.2讲、RDIFramework.NET框架基于代码生成器生成MvcUI的讲解

第2.2.1讲、RDIFramework.NET框架基于代码生成器生成MvcUI的讲解_第2.2讲补充视频

第2.3讲、RDIFramework.NET框架基于代码生成器生成WebFormUI的讲解

第2.4讲、RDIFramework.NET框架基于代码生成器生成的业务逻辑进行WinForm程序的开发

 



本文转自yonghu86博客园博客,原文链接:http://www.cnblogs.com/huyong/p/5752157.html,如需转载请自行联系原作者

相关文章
|
1月前
|
SQL 数据库 C#
C# .NET面试系列十一:数据库SQL查询(附建表语句)
#### 第1题 用一条 SQL 语句 查询出每门课都大于80 分的学生姓名 建表语句: ```sql create table tableA ( name varchar(10), kecheng varchar(10), fenshu int(11) ) DEFAULT CHARSET = 'utf8'; ``` 插入数据 ```sql insert into tableA values ('张三', '语文', 81); insert into tableA values ('张三', '数学', 75); insert into tableA values ('李四',
65 2
C# .NET面试系列十一:数据库SQL查询(附建表语句)
|
2月前
|
开发框架 Oracle 关系型数据库
ASP.NET实验室LIS系统源码 Oracle数据库
LIS是HIS的一个组成部分,通过与HIS的无缝连接可以共享HIS中的信息资源,使检验科能与门诊部、住院部、财务科和临床科室等全院各部门之间协同工作。 
37 4
|
9天前
|
开发框架 前端开发 JavaScript
采用C#.Net +JavaScript 开发的云LIS系统源码 二级医院应用案例有演示
技术架构:Asp.NET CORE 3.1 MVC + SQLserver + Redis等 开发语言:C# 6.0、JavaScript 前端框架:JQuery、EasyUI、Bootstrap 后端框架:MVC、SQLSugar等 数 据 库:SQLserver 2012
|
2月前
|
SQL 开发框架 .NET
ASP.NET WEB+EntityFramework数据持久化——考核练习库——1、用户管理系统(考点:查询列表、增加、删除)
ASP.NET WEB+EntityFramework数据持久化——考核练习库——1、用户管理系统(考点:查询列表、增加、删除)
67 0
|
2月前
|
SQL 开发框架 .NET
ASP.NET Web——GridView完整增删改查示例(全篇幅包含sql脚本)大二结业考试必备技能
ASP.NET Web——GridView完整增删改查示例(全篇幅包含sql脚本)大二结业考试必备技能
33 0
|
3月前
|
SQL 缓存 Java
JAVAEE框架技术之8-myBatis ORM框架技术参数和动态SQL语句
JAVAEE框架技术之8-myBatis ORM框架技术参数和动态SQL语句
64 0
JAVAEE框架技术之8-myBatis ORM框架技术参数和动态SQL语句
|
3月前
|
前端开发 JavaScript 关系型数据库
.NET开源、强大的Web报表统计系统
.NET开源、强大的Web报表统计系统
|
3月前
|
SQL 分布式计算 数据处理
Spark的生态系统概览:Spark SQL、Spark Streaming
Spark的生态系统概览:Spark SQL、Spark Streaming
|
3月前
|
SQL 数据挖掘 数据处理
「SQL面试题库」 No_82 报告系统状态的连续日期
「SQL面试题库」 No_82 报告系统状态的连续日期
|
4月前
|
Web App开发 开发框架 .NET
asp.net基于WEB层面的云LIS系统平台源码
结合当今各检验科管理及实验室规模的不同状况,充分吸收当今IT科技的最新成就,开发出以高度产品化、功能强大、极易实施操作、并不断升级换代为主要特点的LIS系统。彻底解决检验科的信息孤岛,全面实现全院信息互通互联、高度共享,并为检验科的规范化管理提供了有力工具。
41 0

热门文章

最新文章