在程序中调用Oracle的存储过程
我在执行下面的代码时,系统总在执行第6行时报错 
 string   billid; 
 string   str_Conn= "user   id=cm;data   source=MOVESOFT;password=123 "; 
 this.myConn.ConnectionString=str_Conn; 
 this.myConn.Open(); 
 OracleCommand   cmd=new   OracleCommand( "sp_new_glide ",myConn); 
 billid=(string)cmd.ExecuteOracleScalar(); 
 this.myConn.Close(); 
 this.textBox1.Text=billid; 
 但我看不出错在哪,是Oracle的存储过程不能这样调用用吗?请各位高手指点一下 
 其中的存储过程内容如下: 
 create   or   replace   procedure   cm.sp_new_glide--   新增一个入库单 
 ( 
                      v_billid   out   varchar2 
 )   as 
 begin                     
                   --累加算出新单据号 
                   select   billid   into   v_billid   from      cm.glide_total   where   rownum=1   order   by   billid   desc; 
                   v_billid:=lpad(8,to_char(v_billid+1), '0 ');--给单据号补零                  
 end   sp_new_glide; 
 存储过程是查出上一张的单据号加一并补足位数,生成新的单据号。如:旧0003,新0004
------解决方案--------------------我的异常网推荐解决方案:oracle存储过程,http://www.aiyiweb.com/oracle-develop/177537.html
------解决方案--------------------OracleCommand cmd=new OracleCommand( "sp_new_glide ",myConn); 
 下面 加这句 
 cmd.CommandType = CommandType.StoredProcedure;
------解决方案--------------------string str_Conn= "user id=cm;data source=MOVESOFT;password=123 "; 
 this.myConn.ConnectionString=str_Conn; 
 this.myConn.Open(); 
 OracleCommand cmd=new OracleCommand( "sp_new_glide ",myConn); 
 OracleParameter op = cmd.Parameters.Add( "? ", OracleType.VarChar, 32); 
 op.Direction = ParameterDirection.Output; 
 cmd.ExecuteNonQuery(); 
 this.myConn.Close(); 
 this.textBox1.Text = Convert.ToString(op.Value);