我正在使用代码我正在转换为使用.NET的Pgsql。我想调用一个包含多个参数的存储函数,但是我想按名称绑定参数,如下所示:
NpgsqlCommand command = new NpgsqlCommand("\"StoredFunction\"", _Connection)
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add("param2", value2);
command.PArameters.Add("param1", value1);
到目前为止尝试执行此操作会查找参数类型匹配的函数,该函数按照我将参数添加到集合的顺序匹配,而不是按名称。
Npgsql是否可以通过名称将参数绑定到存储的函数?
答案 0 :(得分:3)
目前,Npgsql不支持按名称传递参数。虽然它支持按名称接收参数值。
你介意填写关于这个的错误报告吗?所以我们可以跟踪和实施它。
答案 1 :(得分:3)
不幸的是,它不适用于存储过程(CommandType.StoredProcedure)。
使用SQL-text命令(CommandType.Text)。 您可以使用:paramname,加上我认为在最新版本中您可以使用parameters.addwithvalue(“:paramname”,param)。
您也可以将@paramname与最新版本(如MS Sql Server)一起使用。
阅读this manual的“使用查询中的参数”部分来回答原始问题 - 但请记住我上面所说的内容,以便让您的生活更轻松。