对于那些在C#和剖析中极客的人来说,这个问题很愚蠢。
我是c#的新手(基本上是c ++开发人员)。如果数据库查询使用dbproviderfactory
,我可以对其进行概要分析,但我无法在直接使用ado.net调用时对其进行概要分析(raw SqlConnection
& SqlCommand
)。我遇到了Miniprofiler代码,他们也在其中描述了直接的ADO.net调用。我只是不知道如何使用它(将它集成到我的探查器中)。
我的代码是
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());
}
当执行上述代码时,将如何调用MiniProfiler中的类?当我的Web应用程序调用SqlCommand(..)时,如何调用这些类(希望类名为SimpleProfiledDbCommand
)。
需要更好地澄清这一点。
答案 0 :(得分:2)
根据documentation,您需要使用能够跟踪查询的SqlConnection
包裹ProfiledDbConnection
:
SqlConnection underlyingConn = new SqlConnection(@"Server=192.168.23.99;Initial Catalog=cat1;User ID=user21;Password=userpwd");
SqlConnection myConn = new StackExchange.Profiling.Data.ProfiledDbConnection(underlyingConn, MiniProfiler.Current);