有没有办法将参数传递到XPath NpgsqlCommand中?

问题描述 投票:1回答:1

在SQL Server中,我可以使用 sql:variable:

string sql = "select * from mytable where xml_column.exist('//Tag[text()=sql:variable(\"@value\")]') = 1";

我试图找到类似的方法向NpgsqlCommand传递参数。例如,这个方法不会失败,但也不会返回任何数据。

string sql = "select * from mytable where xmlexists('//Tag[text()=\"@value\"]' PASSING BY REF xml_column) = true";

有什么方法可以做到这一点吗?

下面是一个代码片段。

string connstr = "PORT=5432;DATABASE=mydb;HOST=myhost;USER ID=myuser;PASSWORD=mypassword";
using (NpgsqlConnection connection = new NpgsqlConnection(connstr))
{
    connection.Open();

    string sql = "select xml_column from mytable where xmlexists('//Tag[text()=\"@value\"]' PASSING BY REF xml_column) = true";
    using (var cmd = connection.CreateCommand())
    {
        cmd.CommandText = sql;
        cmd.Parameters.AddWithValue("@value", "my value");
        using (var reader = cmd.ExecuteReader())
        {
            while (reader.Read())
            {
                reader[0].Dump();
            }
        }
    }

    connection.Close();
}
sql postgresql xpath parameters npgsql
1个回答
0
投票

交叉发布在github上,见那里的答案。https:/github.comnpgsqlnpgsqlissues2946。

© www.soinside.com 2019 - 2024. All rights reserved.