Npgsql按名称将参数传递给存储的函数

时间:2010-03-04 20:28:50

标签: c# npgsql stored-functions postgresql

我正在使用代码我正在转换为使用.NET的Pgsql。我想调用一个包含多个参数的存储函数,但是我想按名称绑定参数,如下所示:

NpgsqlCommand command = new NpgsqlCommand("\"StoredFunction\"", _Connection)
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add("param2", value2);
command.PArameters.Add("param1", value1);

到目前为止尝试执行此操作会查找参数类型匹配的函数,该函数按照我将参数添加到集合的顺序匹配,而不是按名称。

Npgsql是否可以通过名称将参数绑定到存储的函数?

2 个答案:

答案 0 :(得分:3)

目前,Npgsql不支持按名称传递参数。虽然它支持按名称接收参数值。

你介意填写关于这个的错误报告吗?所以我们可以跟踪和实施它。

答案 1 :(得分:3)

不幸的是,它不适用于存储过程(CommandType.StoredProcedure)。

使用SQL-text命令(CommandType.Text)。 您可以使用:paramname,加上我认为在最新版本中您可以使用parameters.addwithvalue(“:paramname”,param)。

您也可以将@paramname与最新版本(如MS Sql Server)一起使用。

阅读this manual的“使用查询中的参数”部分来回答原始问题 - 但请记住我上面所说的内容,以便让您的生活更轻松。