0

我在 PostgreSQL 中有一个存储过程:

CREATE OR REPLACE FUNCTION dosmth()
RETURNS boolean AS
$BODY$
BEGIN

RETURN FALSE;

 END;
 $BODY$
 LANGUAGE 'plpgsql' VOLATILE

从 ado.net 我需要检索返回值。我尝试执行以下操作:

   DbCommand cmd = DBTemplate.CreateStoredProcedureCommand(dbConnection, "dosmth");

   cmd.Parameters.Add(DBTemplate.CreateParameter(System.Data.DbType.Boolean,
                "@RETURN_VALUE", System.Data.ParameterDirection.ReturnValue));

   DBTemplate.ExecuteNonQuery(cmd);
   Boolean bl = Convert.ToBoolean(cmd.Parameters["@RETURN_VALUE"].Value);

不幸的是,这不起作用告诉我该类型DBNull无法转换为Boolean.
有任何想法吗?

4

1 回答 1

1

尝试使用ExecuteScalar而不是ExecuteNonQuery. 我似乎记得那ExecuteNonQuery也不return是结果。

于 2009-05-15T22:35:02.050 回答