就在C#中对MySQL数据库执行SQL查询之前,我想记录将要执行的查询.我现在所拥有的只是记录SELECT * FROM foo WHERE Id = @Id
我希望看到的地方SELECT * FROM foo WHERE Id = 5
.我怎么做?
DbCommand dbCommand = dbFactory.CreateCommand();
dbCommand.CommandText = "SELECT * FROM foo WHERE Id = @Id";
DbParameter param = dbCommand.CreateParameter();
param.ParameterName = "@Id";
param.Value = 5;
dbCommand.Parameters.Add(param);
dbConnection.Open();
Log.AddVerbose(String.Format("SQL query: {0}", dbCommand.CommandText));
dbCommand.ExecuteReader();
Run Code Online (Sandbox Code Playgroud)
Anu*_*raj 17
如果您尝试登录,则可以执行此类扩展方法.
public static string GetGeneratedQuery(this SqlCommand dbCommand)
{
var query = dbCommand.CommandText;
foreach (var parameter in dbCommand.Parameters)
{
query = query.Replace(parameter.ParameterName, parameter.Value.ToString());
}
return query;
}
Run Code Online (Sandbox Code Playgroud)
你可以像这样使用它.
Log.AddVerbose(String.Format("SQL query: {0}", GetGeneratedQuery(dbCommand)));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14508 次 |
最近记录: |