Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有方法将参数传递到XPath NpgsqlCommand中?_Sql_Postgresql_Xpath_Parameters_Npgsql - Fatal编程技术网

是否有方法将参数传递到XPath NpgsqlCommand中?

是否有方法将参数传递到XPath NpgsqlCommand中?,sql,postgresql,xpath,parameters,npgsql,Sql,Postgresql,Xpath,Parameters,Npgsql,在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('//T

在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();
}

在github上交叉发布,请参见那里的答案:

在github上交叉发布,请参见那里的答案:

我尝试了第三个建议,使用quote_文字函数和服务器端连接,但无法使其工作,得到:PostgresException 42601:语法错误在“| |”处或附近我尝试了第三个建议,使用quote_literal函数和服务器端连接,但无法使其工作,获取:postgrescexception 42601:位于或接近“||”的语法错误