调用存储过程代码如下
Database db=DatabaseFactory.CreateDatabase("DatabaseConnectionstring");
string sqlCommand="move";
Dbcommand dbCommand=db.GetStroreProcCommand(sqlCommand);
db.AddInParameter(dbCommand,"order",DbType.Int32,iOrder);
db.ExecuteNonQuery(dbCommand);
我的问题是,如何取得存储过程return的值

解决方案 »

  1.   

    db.AddInParameter(dbCommand,"order",DbType.Int32,iOrder);
    ==================
    楼主这个添加存储过程参数的写法不太规范,导致不知道怎么取存储过程的返回值。
    应该把存储过程的参数单独拿出来定义。比如我再定义个参数是用来接收存储过程返回值的。
    楼主的代码我看不太明白,不知道是什么数据库,我写个SQL的把,如下:
    SqlParameter param = new SqlParameter();
            param.DbType = DbType.Int32;//这个参数类型按楼主写楼主返回值的类型
            param.Direction = ParameterDirection.ReturnValue;//主要就是这句了,指定这个存储过程参数是用来接收返回值的
            param.ParameterName = "order";
            dbCommand.Parameters.Add(param);
      

  2.   

    楼主这个添加存储过程参数的写法不太规范,导致不知道怎么取存储过程的返回值。 
    应该把存储过程的参数单独拿出来定义。比如我再定义个参数是用来接收存储过程返回值的。 
    楼主的代码我看不太明白,不知道是什么数据库,我写个SQL的把,如下: 
    SqlParameter   param   =   new   SqlParameter(); 
                    param.DbType   =   DbType.Int32;//这个参数类型按楼主写楼主返回值的类型 
                    param.Direction   =   ParameterDirection.ReturnValue;//主要就是这句了,指定这个存储过程参数是用来接收返回值的 
                    param.ParameterName   =   "order "; 
                    dbCommand.Parameters.Add(param);
      

  3.   

    存储过程中返回类型的参数。要.net获取其执行后的值。参考代码:
    create proc test
    (
    @id output
    )int i;
    sqlcommand obj_cmd=new sqlcommand(strcmd,cnn);
    obj_cmd.ExecuteNonQuery();  i= int.Parse(obj_cmd.Parameters[@id].Value.ToString());