我正在尝试为下面的 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/