gpt4 book ai didi

postgresql - 有没有办法获取 NpgsqlCommand 的完整命令文本?

转载 作者:行者123 更新时间:2023-11-29 13:00:27 25 4
gpt4 key购买 nike

像这样的代码:

string strCommand = "SELECT * FROM \"MyDataBase\".\"vwUsers\" "
strCommand += "WHERE name LIKE '%' || :name || '%' ";
strCommand += "ORDER BY name ASC LIMIT :page_limit OFFSET :row_offset";

NpgsqlCommand cCommand = new NpgsqlCommand(strCommand);

cCommand.Parameters.Add(new NpgsqlParameter("name", NpgsqlDbType.Text));
cCommand.Parameters[0].Value = strName;
cCommand.Parameters.Add(new NpgsqlParameter("page_limit", NpgsqlDbType.Integer));
cCommand.Parameters[1].Value = nPageAmount;
cCommand.Parameters.Add(new NpgsqlParameter("row_offset", NpgsqlDbType.Integer));
cCommand.Parameters[2].Value = nRowOffset;

有没有办法获取插入所有参数的命令字符串的全文?

最佳答案

没有。这样做的原因是因为 Npgsql 3.0 参数不是简单地替换为字符串; Npgsql 实际上发送带有参数占位符的 SQL,并在单独的消息中以二进制编码传输参数。换句话说,SQL 查询在任何地方都无法作为带有参数的文本使用。

(注意:在 Npgsql 2.2 中,客户端参数绑定(bind)是针对未准备好的消息完成的,因此这在理论上是可行的)。

关于postgresql - 有没有办法获取 NpgsqlCommand 的完整命令文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31997711/

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