PostgreSQL с серверной частью C# отправил нераспознанный тип ответа: oC#

Место общения программистов C#
Ответить
Anonymous
 PostgreSQL с серверной частью C# отправил нераспознанный тип ответа: o

Сообщение Anonymous »

Я пытаюсь выполнить следующую функцию, например ExecuteNonQuery, в C#:
CREATE OR REPLACE FUNCTION Fifty(field_a bigint,field_b bigint, field_c decimal,field_d decimal, field_e bigint)
RETURNS void AS $$
DECLARE variableA bigint;
BEGIN
IF (field_b 0)
THEN
insert into table_a
(
fields...
)
select
fields
FROM table_a
where
field_a = a
and field_b = b
and field_c = c;

SELECT field_d
into table
FROM table_a
WHERE field_a = a
AND field_b = b;

update tb_history set
field_a = a,
value =b,
his_value = d * 0.02,
his_deb = 0.08,
his_id = field_a
where
field_a = a
and his_deb = b
and his_id = c;

delete from table_a
where
field_a = a
and field_b = b
and field_c = c;
ELSE
DELETE FROM table_d
where fiela_a in
(SELECT...);

DELETE FROM table_d
where field_a in
(SELECT...);

DELETE FROM table_e
where field_a = a
and field_b = b
and field_c = c;

delete from table_a
where
field_a = a
and field_b = b
and field_c = c;;
END IF;
END
$$ LANGUAGE plpgsql;

Когда я поместил все параметры в C# и вызвал запрос на выполнение, я получил следующую ошибку сообщения:
Бэкэнд отправил нераспознанный тип ответа: o
Я могу нормально запустить функцию в консоли Postgres, она работает отлично.
Я думаю, это тип возвращаемого значения, но я не знаю, что должно возвращаться, чтобы добиться успешного выполнения.
ОТРЕДАКТИРОВАНОКод C#:
using (NpgsqlCommand command = new NpgsqlCommand())
{
if (!dllConexao.open(conn, 1, true))
{
ret = 99;
msg = "Unavaiable";
}
if (this.conn.transactionIsOpen())
{
command.Transaction = this.con.transaction;
}
command.Connection = this.conn;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "Fifty";
var parm = command.CreateParameter();
parm.ParameterName = "...";
parm.DbType = DbType.Int64;
parm.Value = ...;
var parm1 = command.CreateParameter();
parm1.ParameterName = "...";
parm1.DbType = DbType.Int64;
parm1.Value = ...;

var parm2 = command.CreateParameter();
parm2.ParameterName = "...";
parm2.DbType = DbType.Decimal;
parm2.Value = ...;

var parm3 = command.CreateParameter();
parm3.ParameterName = "...";
parm3.DbType = DbType.Decimal;
parm3.Value = ...;

var parm4 = command.CreateParameter();
parm4.ParameterName = "...";
parm4.DbType = DbType.Int32;
parm4.Value = ...;

command.Parameters.Add(parm);
command.Parameters.Add(parm1);
command.Parameters.Add(parm2);
command.Parameters.Add(parm3);
command.Parameters.Add(parm4);

command.ExecuteNonQuery();
this.dllConexao.commitTransacao();
this.dllConexao.closeTransaction();

}


Подробнее здесь: https://stackoverflow.com/questions/414 ... nse-type-o
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»