gpt4 book ai didi

ado.net - oledb/ado.net : Get the command's text, 替换了所有参数

转载 作者:行者123 更新时间:2023-12-04 22:39:01 27 4
gpt4 key购买 nike

是否可以获取 OleDbCommand 的文本?用它们的值替换所有参数?例如。在下面的代码中,我正在寻找一种获取查询文本的方法

SELECT * FROM my_table WHERE c1 = 'hello' and c2 = 'world'

在我完成分配参数后。
var query = "SELECT * FROM my_table WHERE c1 = ? and c2 = ?";
var cmd = new OleDbCommand(query, connection);
cmd.Parameters.Add("@p1", OleDbType.WChar).Value = "hello";
cmd.Parameters.Add("@p2", OleDbType.WChar).Value = "world";

最佳答案

不:您必须自己遍历参数集合,执行 string.Replace() 以获取等效项。当您必须使用? 时尤其痛苦语法而不是 @parametername句法。

这样做的原因是从未组装过完整的字符串。参数和发送到服务器并被视为数据,并且永远不会包含在字符串中。

尽管如此,我还是理解你的痛苦。如果它们包含某种 .ComposeSQL() 就好了您可以出于调试目的调用的方法,这可能还会产生编译器警告以帮助避免在生产中使用。

关于ado.net - oledb/ado.net : Get the command's text, 替换了所有参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/178857/

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