RDIFramework.NET ━ .NET快速信息化系统开发框架 记录所有操作的Sql
admin
2023-08-02 16:37:17
0

在实际开发或试运行过程中,我们有时需要查看或分析模块执行的所有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///

/// 写入sql查询句日志

///

///

publicvirtualvoidWriteLog(stringcommandText)

{

stringfileName = DateTime.Now.ToString(SystemInfo.DateFormat) +\” _ \”+this.FileName;

WriteLog(commandText, fileName);

}

///

/// 写入sql查询句日志

///

/// 异常

/// 文件名

publicvirtualvoidWriteLog(stringcommandText,stringfileName =null)

{

if(string.IsNullOrEmpty(fileName))

{

fileName = DateTime.Now.ToString(SystemInfo.DateFormat) +\” _ \”+this.FileName;

}

stringreturnValue =string.Empty;

// 系统里应该可以配置是否记录异常现象

if(!SystemInfo.LogSQL)

{

return;

}

// 将异常信息写入本地文件中

stringlogDirectory = SystemInfo.StartupPath +@\”\\\\Log\\\\Query\”;

if(!System.IO.Directory.Exists(logDirectory))

{

System.IO.Directory.CreateDirectory(logDirectory);

}

stringwriterFileName = logDirectory +\”\\\\\”+ fileName;

if(!File.Exists(writerFileName))

{

FileStream FileStream =newFileStream(writerFileName, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);

FileStream.Close();

}

StreamWriter streamWriter =newStreamWriter(writerFileName,true, Encoding.Default);

streamWriter.WriteLine(DateTime.Now.ToString(SystemInfo.DateTimeFormat) +\” \”+ commandText);

streamWriter.Close();

}

publicvirtualvoidWriteLog(stringcommandText, IDbDataParameter[] dbParameters =null,stringfileName =null)

{

// 系统里应该可以配置是否记录异常现象

if(!SystemInfo.LogSQL)

{

return;

}

if(string.IsNullOrEmpty(fileName))

{

fileName = DateTime.Now.ToString(SystemInfo.DateFormat) +\” _ \”+ FileName;

}

stringmessage =string.Empty;

message = DateTime.Now.ToString(SystemInfo.DateTimeFormat) + System.Environment.NewLine +\”commandText内容\”+ System.Environment.NewLine + commandText;

if(dbParameters !=null)

{

StringBuilder sb =newStringBuilder();

foreach(varparameterindbParameters)

{

sb.AppendLine(parameter.ParameterName +\”=\”+ parameter.Value);

}

message += System.Environment.NewLine +\”dbParameters内容\”+ System.Environment.NewLine + sb.ToString();

}

stringlogDirectory = SystemInfo.StartupPath +@\”\\Log\\Query\”;

if(!System.IO.Directory.Exists(logDirectory))

{

System.IO.Directory.CreateDirectory(logDirectory);

}

stringwriterFileName = logDirectory +\”\\\\\”+ fileName;

if(!File.Exists(writerFileName))

{

FileStream FileStream =newFileStream(writerFileName, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);

FileStream.Close();

}

StreamWriter streamWriter =newStreamWriter(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程序的开发

一路走来数个年头,感谢RDIFramework.NET框架的支持者与使用者,大家可以通过下面的地址了解详情。

RDIFramework.NET官方网站:http://www.rdiframework.net/

RDIFramework.NET官方博客:http://blog.rdiframework.net/

同时需要说明的,以后的所有技术文章以官方网站为准,欢迎大家收藏!

RDIFramework.NET框架由专业团队长期打造、一直在更新、一直在升级,请放心使用!

欢迎关注RDIFramework.NET框架官方公众微信(微信号:rdiframework-net),及时了解最新动态。

扫描二维码立即关注

作者:EricHu

Email:406590790@qq.com

QQ交流:406590790

框架官网:http://www.rdiframework.net/

框架官网博客:http://blog.rdiframework.net/

框架其他博客:http://blog.csdn.net/chinahuyong

RDIFramework.NET,基于.NET的快速信息化系统开发、整合框架,给用户和开发者最佳的.Net框架部署方案。

关于作者:高级工程师、信息系统项目管理师、DBA。专注于微软平台项目架构、管理和企业解决方案,多年项目开发与管理经验,曾多次组织并开发多个大型项目,在面向对象、面向服务以及数据库领域有一定的造诣。现主要从事基于RDIFramework.NET框架的技术开发、咨询工作,主要服务于金融、医疗卫生、铁路、电信、物流、物联网、制造、零售等行业。

如有问题或建议,请多多赐教!

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...