我在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
。
有什么想法吗?
答案 0 :(得分:0)
尝试使用ExecuteScalar而不是ExecuteNonQuery。我似乎记得ExecuteNonQuery也没有返回结果。