c#调用oracle存储过程,返回2个值

存储过程名称:drv_admin.write_KM3参数说明M_LSH流水号inputM_SFZMHM身份证号码inputM_KSCX考试车型inputM_KSRQ考试日... 存储过程名称:drv_admin.write_KM3

参数说明
M_LSH 流水号 input
M_SFZMHM 身份证号码 input
M_KSCX 考试车型 input
M_KSRQ 考试日期(YYYY-MM-DD ) input
M_KSCJ 考试成绩 不合格0 合格为具体分数 input
M_KSCS 考试次数 input
M_KSY1 考试员1 input
M_KSY2 考试员2 input
M_JBR 经办人 input
M_ZT 状态1合格 2不合格 0未考 input
M_SN 调用存储过程SN input
RES 存储过程执行成功标记 0成功,1失败 output 输出参数
ERR 错误说明 output 输出参数

这个存储过程要怎么调用啊。。。。他要返回2个参数。
我的存储过程是已经存在的了。就是不知道要怎么调用。。。怎么去接受他2个返回的值
展开
 我来答
爆米花网
2009-07-30 · TA获得超过261个赞
知道答主
回答量:86
采纳率:0%
帮助的人:60.9万
展开全部
outresult = new ArrayList() ;
result = new ArrayList();
cmd = new OracleCommand();
cmd.CommandType = CommandType.StoredProcedure;
//将输出参数添加到result对象中
foreach(OracleParameter op in OPCParam)
{
if(ParameterDirection.Output == op.Direction)
{
result.Add(op);
}
cmd.Parameters.Add(op);
}
cmd.CommandText = ProcedureName;
cmd.ExecuteNonQuery();
for(int i = 0; i < result.Count; i ++)
{
outresult.Add(((OracleParameter)result[i]).Value);
}

//返回值在outresult对象中
a5202003
2009-07-30 · TA获得超过2249个赞
知道大有可为答主
回答量:1885
采纳率:75%
帮助的人:589万
展开全部
是这样的
首先语句要这样
declare @Res bit,@Err navarchar(200)
exec 存储过程名 ..参数..,@Res,@Err
select @Res Result,@Err ErrorMsg
以上就是所有的sql了
用一个数据集存返回值,然后数据集访问字段"Result","ErrorMsg"
就可以得到你要的东东了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我不发财
2009-07-30 · TA获得超过151个赞
知道答主
回答量:168
采纳率:0%
帮助的人:0
展开全部
OleDbConnection PubsConn = new OleDbConnection
("Provider=SQLOLEDB;Data Source=server;" +
"integrated Security=sspi;initial catalog=pubs;");
OleDbCommand testCMD = new OleDbCommand
("TestProcedure", PubsConn);

testCMD.CommandType = CommandType.StoredProcedure;

OleDbParameter RetVal = testCMD.Parameters.Add
("RetVal", OleDbType.Integer);RetVal.Direction = ParameterDirection.ReturnValue;
OleDbParameter IdIn = testCMD.Parameters.Add
("@au_idIN", OleDbType.VarChar, 11);
IdIn.Direction = ParameterDirection.Input;
OleDbParameter NumTitles = testCMD.Parameters.Add
("@numtitlesout", OleDbType.VarChar, 11);
NumTitles.Direction = ParameterDirection.Output;

IdIn.Value = "213-46-8915";

PubsConn.Open();

OleDbDataReader myReader = testCMD.ExecuteReader();
Console.WriteLine ("Book Titles for this Author:");
while (myReader.Read())
{
Console.WriteLine ("{0}", myReader.GetString (2));
};
myReader.Close() ;
你看看我的语法就明白了。。。
using system.ole...要加上去啊哈
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
csuxp2008
2009-07-30 · TA获得超过6485个赞
知道大有可为答主
回答量:4704
采纳率:50%
帮助的人:2460万
展开全部
不是有2个输出型参数嘛

定义两个变量,用来接受这2个输出参数传出的值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式