首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

在程序中调用Oracle的存储过程解决思路

2013-03-26 
在程序中调用Oracle的存储过程我在执行下面的代码时,系统总在执行第6行时报错stringbillidstringstr_Conn

在程序中调用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.myexception.cn/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);

热点排行