///添加返回参数ReturnValue
        cmd.Parameters.Add(
            new OracleParameter("RETURNVALUE",OracleType.Int32 , 4, ParameterDirection.ReturnValue,
            false, 0, 0, string.Empty, DataRowVersion.Default, null));下面是完整的
    public OracleCommand CraeteCommand(string procname, OracleParameter[] param)
    {
        ///打开数据库连接
        Open();        ///设置Command
        OracleCommand cmd = new OracleCommand();
        cmd.Connection = cn;
        cmd.CommandText = procname;
        cmd.CommandType = CommandType.StoredProcedure;
        ///添加把存储过程的参数
        if (param != null)
        {
            foreach (OracleParameter parameter in param)
            {
                cmd.Parameters.Add(parameter);
            }
        }        ///添加返回参数ReturnValue
        cmd.Parameters.Add(
            new OracleParameter("RETURNVALUE",OracleType.Int32 , 4, ParameterDirection.ReturnValue,
            false, 0, 0, string.Empty, DataRowVersion.Default, null));        ///返回创建的Command对象
        return cmd;    }我在执行的时候,加了返回参数那段就不能执行(执行的是oracle存储分页过程,返回一个值和游标)
去掉就能执行1、那段返回参数是什么意思??

解决方案 »

  1.   

      cmd.Parameters.Add( 
                new OracleParameter("@RETURNVALUE",OracleType.Int32 , 4, ParameterDirection.ReturnValue, 
                false, 0, 0, string.Empty, DataRowVersion.Default, null)); 
    参数都要加 @
      

  2.   

    有返回值,两个int,一个游标我用oracle,好像不要@,加:,出现非法的变量名/编号
      

  3.   

    匹配啊我把        ///添加返回参数ReturnValue 
            cmd.Parameters.Add( 
                new OracleParameter("RETURNVALUE",OracleType.Int32 , 4, ParameterDirection.ReturnValue, 
                false, 0, 0, string.Empty, DataRowVersion.Default, null)); 去掉就可以了
      

  4.   

    有返回值,两个int,一个游标 
    怎样添加返回值