.net - 捕获 ADO.net DB 查询运行时

标签 .net ado.net sqlclr dbproviderfactories clrprofiler

我正在尝试为下面的 C# .net Web 应用程序捕获 Db 查询。

如果我通过代理来使用 DbProviderfactory,则有一些方法可以做到。但是,如果我像下面这样直接使用 SqlConnection 和 SqlCommand 而不是使用 DbProviderFactory,我该如何跟踪我的数据库调用?

            SqlConnection myConn = new SqlConnection(@"Server=192.168.23.99;Initial Catalog=cat1;User ID=user21;Password=userpwd");
            SqlCommand myCommand = new SqlCommand("select * from table1", myConn);
            SqlDataReader dataReader;

            System.Threading.Thread.Sleep(5000);
            try
            {
                myConn.Open();
                dataReader = myCommand.ExecuteReader();

                GridView1.DataSource = dataReader;
                GridView1.DataBind();
                dataReader.Close();
                myCommand.Dispose();
                myConn.Close();
            }
            catch (System.Exception ex)
            {
                Response.Write(ex.ToString());
            }

我知道有分析器可以追踪这一点。但是,我想在我自己的程序中这样做。

基本上我需要分析 Web 请求中的 Db Connection 和 Db 命令,其中不使用 DbProviderFactories。我是 .Net 开发分析器的新手,所以我希望有一些指南可以做到这一点。

谢谢。

最佳答案

很简单,只需运行 SQL Profiler,当您越过 myCommand.ExecuteReader() 行时,观察什么 SQL 在分析器中运行。

有关详细信息,请参阅: https://msdn.microsoft.com/en-us/library/ff650699.aspx

关于.net - 捕获 ADO.net DB 查询运行时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28019539/

相关文章:

.net - 如何编写像 Google 或 Yahoo 一样轻量级的 Web 部件

.net - 如何注销 ASP 成员(member)资格

c# - 为什么 && 和 ||不能用于可空类型?

c# - 我可以从 SqlConnection 对象获取对挂起事务的引用吗?

sql-server-2008-r2 - SQL71501 : Trigger: [dbo]. [TriggerName] 具有对对象 [dbo].[TableName] 的未解析引用

c# - 复合 linq 查询

c# - 如何在ado net中使用UPDATE

c# - 在创建表 SQL Server 命令中引用默认值

c# - 不使用 XmlDocument.Loadxml() 函数将 XML 反序列化为 JSON