有没有办法在以编程方式替换参数值后获取CommandText?

Kav*_*ian 2 c# database ado.net f#

有没有办法CommandText在.NET中以编程方式替换paramater值?

假设我们有一个命令:

let cmd = conn.CreateCommand()
cmd.CommandText <- "select * from smsqueue where smsqueueid=:pid"
cmd.CommandType <- CommandType.Text
cmd.Parameters.Add("pid", 0)
Run Code Online (Sandbox Code Playgroud)

我想得到准备好的命令文本; 这将是这样的:

select * from smsqueue where smsqueueid=0
Run Code Online (Sandbox Code Playgroud)

有分析器可以获取此信息,但我想在代码中明确地执行此操作(例如,F#或C#).

Jon*_*eet 5

替换可能不会在文本中执行 - 实际上这样做会更麻烦.当驱动程序能够以预先计划的二进制格式单独传输它们时,为什么还要弄清楚如何转义字符串,用特定文本格式表示日期等?

你想达到什么目标?如果这是为了记录,我只需单独记录命令文本和参数.除了更容易之外,如果您最终遇到问题,这将更清楚:您将能够判断SQL是否已正确参数化.