送上50分,求救捕获sql语句的问题

dafeng168 2007-08-06 10:21:33
项目中的sql语句都是拼接成的,怎么样捕捉跟踪程序所有sql,效果跟事件探查器差不多,最主要就是把每一次数据库操作时的sql写到一个文件里.
...全文
131 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dafeng168 2007-08-11
  • 打赏
  • 举报
回复
今天有空试了一下,基本上实现想要效果了...搞掂,给分
打开DAAB源码的工程项目,找到Database.cs文件,找到PrepareCommand方法
PrepareCommand函数有两个重载方法,
protected static void PrepareCommand(DbCommand command, DbConnection connection)
protected static void PrepareCommand(DbCommand command, DbTransaction transaction)
后一个也调用到前一个,所以在前一个方法加上把command.CommandText写到一个文件或系统事件日志都可以.
如果是存储过程,或者带有参数的SQL,参考MS Sql Server事件探查器中的格式,把对应的参数拼连起来.
如果写到系统事件日志,就要为aspnet用户添加权限
Jinglecat 2007-08-06
  • 打赏
  • 举报
回复
扩展 SqlHelper

如,

// 这里
// WriteSqlToLog(Command.CommandText); // WriteSqlToLog 是自己定义方法
DataReader = Command.ExecuteReader();


// WriteSqlToLog(Command.CommandText);
rowsAffected = Command.ExecuteNonQuery();
dafeng168 2007-08-06
  • 打赏
  • 举报
回复
好的,试下,谢了
BearRui 2007-08-06
  • 打赏
  • 举报
回复
哦,那你可以直接修改他的SqlHelper啊,Data Access Application Block是开源的啊。
dafeng168 2007-08-06
  • 打赏
  • 举报
回复
DAAB
MS企业库中数据访问程序块Data Access Application Block,开源
它把SqlHelper的东西都封装好了,当时觉得调用时方便,就用了它.
purple_tide 2007-08-06
  • 打赏
  • 举报
回复
不论用什么组件和技术
你调用DAL 访问数据库的方法应该是只有一个的
在这个类里面做一个纪录操作就ok了

例如所有的类都是调用SqlHelper访问数据库
bigmingming 2007-08-06
  • 打赏
  • 举报
回复
sqlhelper类简便
BearRui 2007-08-06
  • 打赏
  • 举报
回复
DAAB
----------
没用过,不知道什么东东!!!
dafeng168 2007-08-06
  • 打赏
  • 举报
回复
现在项目用了MS的DAAB,有什么方法解决呢
BearRui 2007-08-06
  • 打赏
  • 举报
回复
这个你应该使用sqlhelper类似的类,让系统所有操作数据库的方法都调用这个类中的几个方法。

然后在这个类中把执行的SQL语句想记录日志一样在执行前记录下来就好了!!!

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧