获得从一个SqlCommand-对象生成的SQL语句? [英] Get the generated SQL-Statement from a SqlCommand-Object?

查看:129
本文介绍了获得从一个SqlCommand-对象生成的SQL语句?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下的code:

Using cmd As SqlCommand = Connection.CreateCommand
    cmd.CommandText = "UPDATE someTable SET Value = @Value"
    cmd.CommandText &= " WHERE Id = @Id"
    cmd.Parameters.AddWithValue("@Id", 1234)
    cmd.Parameters.AddWithValue("@Value", "myValue")
    cmd.ExecuteNonQuery
End Using

我不知道是否有什么办法让最终的SQL-说明书作为一个字符串,它应该是这样的:

I wonder if there is any way to get the final SQL-Statment as a String, which should look like this:

UPDATE someTable SET Value = "myValue" WHERE Id = 1234

如果有人想知道为什么我会做这样的:

If anyone wonders why I would do this:

  • 的日志记录(失败)语句
  • 对于具有可能性,复制和;粘贴到企业管理器用于测试目的

推荐答案

有关采伐的目的,恐怕就是这样做的,但构造字符串自己没有更好的方式:

For logging purposes, I'm afraid there's no nicer way of doing this but to construct the string yourself:

string query = cmd.CommandText;

foreach (SqlParameter p in cmd.Parameters)
{
    query = query.Replace(p.ParameterName, p.Value.ToString());
}

对不起,我忘了.. p.Value.ToString()应该做的工作。

这篇关于获得从一个SqlCommand-对象生成的SQL语句?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆