asp.net获取oracle存储过程返回值

oracle存储过程已经写了好,但怎么在asp.net中获取存储过程的out值。存储过程SQL:createorreplaceprocedureproc_pdalogin... oracle存储过程已经写了好,但怎么在asp.net中获取存储过程的out值。
存储过程SQL:
create or replace procedure proc_pdalogin(name in varchar2,pwd in varchar2,nameresult out varchar2,result out number) is
begin
result:=0;
select username into nameresult from pdalogin where username=name and userpwd=pwd;
if nameresult is not null then
result:=1;
end if;
exception
when no_data_found then
result:=0;
end proc_pdalogin;

asp.net调用:
OracleConnection conn = new OracleConnection(conStr);
try
{
conn.Open();
OracleCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "proc_pdalogin";
cmd.Parameters.Add("name",OracleType.VarChar,25);
cmd.Parameters["name"].Value = name.Trim();
cmd.Parameters.Add("pwd", OracleType.VarChar, 25);
cmd.Parameters["pwd"].Value = pwd.Trim();
cmd.Parameters.Add("nameresult", OracleType.VarChar, 25);
cmd.Parameters["nameresult"].Value ="";
cmd.Parameters.Add("result", OracleType.Number);
cmd.Parameters["result"].Value = 0;
OracleDataReader odr = cmd.ExecuteReader();
这样调用不知道什么地方错了,然后就是存储过程中有两个参数,我可以直接传给他,然而两个参数我要怎么传啊,我主要是要获得存储过程中的result值。谢谢
展开
 我来答
冰浪星
2010-12-17 · 超过19用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:50.8万
展开全部
时间关系手写一份 你能理解多少是多少
OracleParameter Para = new OracleParameter("参数名", OracleType.Number);
//这里设置他的参数类型.out的就是Output 如果是in类型就是Input, 如果是函数返回值那么就是ReturnValue
//然后设置他的value,out类型的value是DBNull.Value;或者不设置.in类型就看你自己的值了
Para.Direction = ParameterDirection.Output;
//然后
cmd.Parameters.Add(Para);
//试试绝对可以
//ps:对于out取值,执行完,你直接取对应参数的value就可以了.但是返回的是object类型.需要转化
你是谁LCqTt
推荐于2016-02-02 · TA获得超过602个赞
知道小有建树答主
回答量:604
采纳率:0%
帮助的人:858万
展开全部
1.对于out参数需要指明Direction属性,因为这个属性的默认值是Input
2.取Output类型参数的值: 在执行存储过程后 cmd.Parameters["result"].Value就已经包含你想要的值了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4d23229
2010-12-17
知道答主
回答量:20
采纳率:0%
帮助的人:7.6万
展开全部
需 指明参数Direction属性,如下:
cmd.Parameters["name"].Direction = ParameterDirection.Input;
cmd.Parameters["pwd"].Direction = ParameterDirection.Input;
cmd.Parameters["nameresult"].Direction = ParameterDirection.Output;
cmd.Parameters["result"].Direction = ParameterDirection.Output;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式