gpt4 book ai didi

c# - 使用参数从 DbCommand 获取 SQL 查询字符串

转载 作者:IT老高 更新时间:2023-10-29 00:21:07 28 4
gpt4 key购买 nike

就在用 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();

最佳答案

如果您尝试登录,您可以使用这样的扩展方法。

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;
}

你可以像这样使用它。

Log.AddVerbose(String.Format("SQL query: {0}", GetGeneratedQuery(dbCommand)));

关于c# - 使用参数从 DbCommand 获取 SQL 查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24291036/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com