我有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。结果 任何想法?

有帮助吗?

解决方案

尝试使用代替的ExecuteNonQuery的ExecuteScalar。我似乎记得,ExecuteNonQuery不要么返回的结果。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top