使用输出参数Npgsql准备Statement

时间:2017-11-27 09:48:08

标签: c# postgresql prepared-statement npgsql


使用下面的代码我调用带有2个输入参数和1个输出参数的strored过程,但是我收到了这个错误:

  

绑定消息提供3个参数,但准备好的语句“”需要   2

我使用了2.1.0版本的Npgsql.dll,我尝试了下一个版本直到3.0.0 但问题仍然存在。 我使用.NET framework 3.5

NpgsqlConnection psgConnection = new NpgsqlConnection("<connection string>");
NpgsqlCommand cmd = new NpgsqlCommand();
psgConnection.Open();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "<stored name>";
cmd.Connection = psgConnection;
NpgsqlParameter par_in_iduser = new NpgsqlParameter("in_iduser", DbType.Int32);
par_in_iduser.Value = IdUser;
cmd.Parameters.Add(par_in_iduser);
NpgsqlParameter par_in_name = new NpgsqlParameter("in_name", DbType.String);
par_in_name.Value = Nome;
cmd.Parameters.Add(par_in_name);

NpgsqlParameter par_out_id_document_search = new NpgsqlParameter("out_id_document_search", DbType.Int32);
par_out_id_document_search.Direction = ParameterDirection.Output;
par_out_id_document_search.Value = 0;
cmd.Parameters.Add(par_out_id_document_search);

cmd.Prepare();
cmd.ExecuteNonQuery();

return Int32.Parse(cmd.Parameters["out_id_document_search"].Value.ToString());

0 个答案:

没有答案