我在执行下面的代码时,系统总在执行第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
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数据类型在C#中对应的数据类型
- 执行效率问题
- FileInfo[] fi=DirectInfo.GetFiles() 获取的文件在fi中存放顺序?
- 谁能帮我解析一下这段字符串(正则表达式)
- 无法使用using Microsoft.Win32 ??
- 问题,急待解决!
- API函数
- 是我的错还是微软的错listBox.indexOf查找不到绑定第一列值
- 在winform中怎样使DataGrid中的部分行不充许修改?
- 关于MSCHART的问题,急,请高手帮忙
- oracle中自增长字段的问题!菜鸟求救,高分回报,解决问题马上加分结帖!!!!!!!!!在线等!1
- C#调用C的DLL文件总是:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
下面 加这句
cmd.CommandType = CommandType.StoredProcedure;
this.myConn.ConnectionString=str_Conn;
this.myConn.Open();
//如下为修改部分,拿去运行吧OracleCommand cmd=new OracleCommand("sp_new_glide",myConn);
cmd.CommandType = CommandType.StoredProcedure;
OracleParameter op = cmd.Parameters.Add("v_billid", OracleType.Varchar,32);
op_zt_hh2.Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();this.myConn.Close();this.textBox1.Text=op.value.tostring();
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);
create or replace procedure cm.sp_new_glide-- 新增一个入库单
(
v_billid out varchar2
v_b in number
) as
begin
--累加算出新单据号
select billid into v_billid from cm.glide_total where rownum=v_b order by billid desc;
v_billid:=lpad(8,to_char(v_billid+1), "0 ");--给单据号补零
end sp_new_glide;
OracleCommand cmd=new OracleCommand("sp_new_glide",myConn);
cmd.CommandType = CommandType.StoredProcedure;
OracleParameter op = cmd.Parameters.Add("v_billid", OracleType.Varchar,32);
op_zt_hh2.Direction = ParameterDirection.Output;
OracleParameter inp = cmd.Parameters.Add("v_b", OracleType.Varchar,32);
op_zt_hh2.Direction = ParameterDirection.Input;
cmd.ExecuteNonQuery(); 会报错为什么?