C#调用oracle存储过程的问题,有输入和输出参数,怎么调用执行存储过程获得输出值

如题所述

第1个回答  2016-07-09
public bool AddGroup(Group g)
{
con = new OracleConnection(ConDataBaseStr._connectionString);
cmd = new OracleCommand("Addgroup", con);
try
{
con.Open();
cmd.CommandType = CommandType.StoredProcedure;
OracleParameter[] parms = {
new OracleParameter("p_Groupname",OracleDbType.Varchar2,20),
new OracleParameter("p_Groupbz",OracleDbType.Varchar2,40),
new OracleParameter("p_Count",OracleDbType.Int16)
};

parms[0].Value = g.groupName;
parms[1].Value = g.groupBz;
parms[2].Direction = ParameterDirection.Output;

foreach (OracleParameter parm in parms)
{
cmd.Parameters.Add(parm);
}

cmd.ExecuteNonQuery();

short bj = Convert.ToInt16(cmd.Parameters[2].Value.ToString());
con.Close();
parms = null;

if (bj == 1)
return true;
else
return false;
}
catch (System.Exception ex)
{
return false;
}
finally
{
cmd.Dispose();
con.Close();
}
}本回答被提问者和网友采纳

c程序该怎么样调用oracle存储过程并获取存储过程中的输出参数的值
EXEC SQL EXECUTE DECLARE lsid varchar2(60);lss_this_error_code number;BEGIN proctest(:ls_name,lsid); --ls_name 输入参数 lss_id 输出 :chId := lsid;-- lsid 输出返回给C变量chId END;END-EXEC;

oracle中怎么执行带有输出参数的存储过程,在程序中我知道怎么调用,
1、新建一个存储过程(Procedure)。2、修改存储过程,这个存储过程有一个输入参数(pid)跟一个输出参数(name),即通过用户id查询用户名称并将名称返回。3、调试存储过程,找到刚刚创建的存储过程右击并点击【test】选项。4、在打开的窗口内修改id值并点击左上角的倒三角形图标开始调试。5、按【CTRL+N】...

c# winform 如何执行oracle 存储过程?
\/\/测试执行存储过程影响的行数 testCMD.ExecuteNonQuery();\/\/ 注意获得参数的方式: testCMD.Parameters["sname"] ;这个是在存储过程中有输出的变量需要这样子,如果没有输出变量,可以不写。MessageBox.Show(testCMD.Parameters["sname"].Value.ToString());

在c#中 怎么获取oracle存储过程中Cursor类型的输出参数
用ExecuteReader方法去执行这个存储过程,会返回一个DataReader对象,这里面就包含了Cursor类型的输出参数值,其实就是查询结果集。就按普通的select处理就好了。

c#调用oracle存储过程,返回2个值
\/\/将输出参数添加到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(((...

C#调用oracle的存储过程,Oracle存储过程参数是一个记录集,我该怎么传...
这个代码是帮你搜到的,自己先理解了再测试一下:SqlConnection lSQLConn = null;SqlCommand lSQLCmd = new SqlCommand();\/\/Declare a DataAdapter and a DataSetSqlDataAdapter lDA = new SqlDataAdapter();DataSet lDS = new DataSet();\/\/...Execution section\/\/ create and open a connection ...

C#调用oracle存储过程返回数据集
\/\/\/ \/\/\/ 执行存储过程 \/\/\/ \/\/\/ 存储过程名 \/\/\/ 存储过程参数 \/\/\/ DataSet结果中的表名 \/\/\/ <returns>DataSet<\/returns> public static DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName ) { using (OracleConnection connection = new...

可否帮我举一个oracle的存储过程 并且要带输入输出参数 还有如何调用...
msg out varchar2) is v_zm varchar2(50);v_xzqy varchar2(20);v_xzbm varchar2(20);n_jjsw number(10,3);n_bzsw number(10,3);v_type varchar2(2);cursor cur_st_river_r(cxsj varchar2)is select from st_river_r where substr(to_char(st_river_r.ymdhm,'yyyy-mm-dd'...

oracle 存储过程中怎么返回参数
存储过程定义参数时,变量名的后面加上关键字OUT,在存储过程执行中对这个参数进行赋值。等存储过程执行结束之后,可以在sqlplus中获得这个参数返回的值。

oracle 数据库中存储过程输出情况
'输出SQL语句1');elsif M < 3 then dbms_output.put_line('输出SQL语句2');else dbms_output.put_line('nothing');end if;end;2、在command窗口编译,3、执行存储过程,输入变量,实际什么也不输入,4、切到DBMS输出窗口,查看输出结果,‘nothing’,也就是说并没有执行‘输出SQL语句’,...

相似回答