2009-05-15 5 views
0

でストアドプロシージャから返された値を取得する私は、PostgreSQLにストアドプロシージャを持っている:ado.netからPostgreSQLの

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

RETURN FALSE; 

END; 
$BODY$ 
LANGUAGE 'plpgsql' VOLATILE 

私は戻り値を取得する必要があります。私は、次の操作を実行しよう:

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); 

残念ながら、これはタイプDBNullBooleanに変換できないことを私に言っては動作しません。
アイデア

答えて

0

ExecuteNonQueryの代わりにExecuteScalarを使用してみてください。私はExecuteNonQueryも結果を返さないことを思い出しているようです。