本人菜鸟级别,做一个oracle加asp.net的程序,遇到下面问题:从vs2003里拷出来的代码,放到2005里就提示入参类型不对或大小不对。不知道各位高手怎么看这个问题,是不是2005里对package的调用方法改了?代码如下:
OracleConnection conn = new OracleConnection(System.Configuration.ConfigurationManager.AppSettings["ConnectionString"]);
OracleCommand comd = new OracleCommand("USERINFO.LoginGLJS_ADMIN", conn); OracleParameter p1 = new OracleParameter("UserName", OracleType.VarChar, 20);
comd.Parameters.Add(p1);
p1.Direction = ParameterDirection.Input;
p1.Value = UserName; OracleParameter p2 = new OracleParameter("UserWord", OracleType.VarChar, 50);
comd.Parameters.Add(p2);
p2.Direction = ParameterDirection.Input;
p2.Value = PassWord; OracleParameter p3 = new OracleParameter("localcur", OracleType.Cursor);
p3.Direction = ParameterDirection.Output;
comd.Parameters.Add(p3); OracleParameter p4 = new OracleParameter("Reason", OracleType.VarChar, 50);
p4.Direction = ParameterDirection.Output;
comd.Parameters.Add(p4); comd.CommandType = CommandType.StoredProcedure conn.Open();
OracleDataReader dr = comd.ExecuteReader();--到此处报错
OracleConnection conn = new OracleConnection(System.Configuration.ConfigurationManager.AppSettings["ConnectionString"]);
OracleCommand comd = new OracleCommand("USERINFO.LoginGLJS_ADMIN", conn); OracleParameter p1 = new OracleParameter("UserName", OracleType.VarChar, 20);
comd.Parameters.Add(p1);
p1.Direction = ParameterDirection.Input;
p1.Value = UserName; OracleParameter p2 = new OracleParameter("UserWord", OracleType.VarChar, 50);
comd.Parameters.Add(p2);
p2.Direction = ParameterDirection.Input;
p2.Value = PassWord; OracleParameter p3 = new OracleParameter("localcur", OracleType.Cursor);
p3.Direction = ParameterDirection.Output;
comd.Parameters.Add(p3); OracleParameter p4 = new OracleParameter("Reason", OracleType.VarChar, 50);
p4.Direction = ParameterDirection.Output;
comd.Parameters.Add(p4); comd.CommandType = CommandType.StoredProcedure conn.Open();
OracleDataReader dr = comd.ExecuteReader();--到此处报错
解决方案 »
- 求两个正则表达式
- 怎么在VB.NET的Window Form application 用 Windows的ID/PW验证
- 弹出窗口的问题
- 有成立工作室打算!有团结的团队!有经验丰富的美工!
- 怎么在服务器上修改文本文件
- .net 2003 在页面中写上下语句,运行都起做用了,就是不能回到设计视图.(没分了)
- 急,似乎很难,求救!!如何动态显示数据库中指明的路径的图片,并且每个图片下面是他的名字,每个名字链接到同一个页面详细说明此图片文字的地
- toolbar 如何用呀???
- 大家谁用过Infragistics UltraWebTree控件,能不能给我个数据邦定的例子
- 怎么知道一个textbox中是整数!!!
- mvc框架下html引用js的疑问
- GridView的超链接用法
这一类的OracleType.VarChar的长度是否和你调用的储存过程中定义的一样;
查看输入参数的类型和存储过程中的参数类型是否一致?另外,存储过程的输入参数好像不用定义长度吧?
OracleParameter p4 = new OracleParameter("Reason", OracleType.VarChar);
PROCEDURE LoginGLJS_ADMIN
( UserName IN xtyhxx.loginid%type,
UserWord IN xtyhxx.password%type,
localcur OUT BASECUR,
Reason OUT Varchar
)
在comd.CommandType = CommandType.StoredProcedure
前加入
cmd.CommandText = "mypackage.getmsg";
其中mypackage.getmsg为包名