Oracle数据库连接C#程序,调用存储过程,向数据库添加记录
存储过程如下:
create or replace procedure proc_addUser
(
username varchar2, --用户名
userpwd varchar2,  --密码
empid number,      --员工ID
levid number       --用户等级ID
)
is
begin             --插入一条新数据
  insert into Userss (username, userpwd, empid, levid) 
  values (username, userpwd, empid, levid);
end;
------------------------------
pl\sql develop调用没有问题,如下:
exec proc_addUser ('aa','123','1','1');
PL/SQL procedure successfully completed --提示调用存储过程调用成功
------------------------------
C#程序:
using (OracleConnection conn = new OracleConnection(connstr)){
  OracleCommand command = new OracleCommand("proc_addUser", conn);  OracleParameter[] param = new OracleParameter[4];
  //定义参数组成员(与存储过程参数对应,且输入无误)
  param[0] = new OracleParameter("username",OracleType.VarChar);
  param[1] = new OracleParameter("userpwd", OracleType.VarChar);
  param[2] = new OracleParameter("empid", OracleType.Number);
  param[3] = new OracleParameter("levid", OracleType.Number);
  //参数成员赋值
  param[0].Value = "bb";
  param[1].Value = "123";
  param[2].Value = "2";
  param[3].Value = "2";
  //带入参数组
  command.Parameters.AddRange(param);  conn.Open();
  command.ExecuteNonQuery();//错误:ORA-01036: 非法的变量名/编号\n
  conn.Close();
}
------------------------------
使用过无效的办法如下:
①参数前添加@符号或是:符号,无效
②改变参数为输入,无效,如下
param[0].Direction = ParameterDirection.Input;
③用户为同一个用户,不存在访问权限问题
------------------------------
小弟已经为该问题纠结了一天了,希望各位高手能帮帮忙,告诉我错在哪里?