• C#执行参数为游标 返回一个记录集的Oracle存储过程


    public DataTable SelectPay_Unit()
            {
    
                string returns = "";
                DataTable objDataTable = new DataTable();//定义一个DataTable
                try
                {
                    //string connectionString = "Data Source=ORCL_201;User ID=XACXEQ_PeiXun;Password=11111;";
                    string connectionString = System.Configuration.ConfigurationManager.AppSettings["CoonString"].ToString();//连接字符串
                    OracleConnection con = new OracleConnection(connectionString);
                    con.Open();//打开连接
                    OracleCommand cmd = new OracleCommand("Proc_PXUnit_Pay", con); 
                    cmd.CommandType = CommandType.StoredProcedure;
                    OracleParameter op = new OracleParameter("cur_arg", OracleType.Cursor);//定义参数
                    op.Direction = ParameterDirection.Output;//设置参数类型
                    cmd.Parameters.Add(op);
                    
                    int intFieldCount = cmd.ExecuteReader(CommandBehavior.CloseConnection).FieldCount;
                    for (int intCounter = 0; intCounter < intFieldCount; ++intCounter)
                    {
                        objDataTable.Columns.Add(cmd.ExecuteReader(CommandBehavior.CloseConnection).GetName(intCounter), cmd.ExecuteReader(CommandBehavior.CloseConnection).GetFieldType(intCounter));
                    }
    
                    objDataTable.BeginLoadData();
    
                    object[] objValues = new object[intFieldCount];
                    while (cmd.ExecuteReader(CommandBehavior.CloseConnection).Read())
                    {
                        cmd.ExecuteReader(CommandBehavior.CloseConnection).GetValues(objValues);
                        objDataTable.LoadDataRow(objValues, true);
                    }
                    cmd.ExecuteReader(CommandBehavior.CloseConnection).Close();
                    objDataTable.EndLoadData();
                    //OracleConnection conn=new OracleConnection ("")
                    // Database db = DatabaseFactory.CreateDatabase("DJG_PeiXun_ConnectionString");
                    //OracleCommand cmd = db.GetStoredProcCommand("Proc_PXUnit_Pay");
                    //db.AddInParameter(cmd,"cursor",OracleType.Cursor);
                    //ds = db.ExecuteDataSet(cmd);
                }
                catch (Exception ex)
                {
                    returns = ex.ToString();
                }
                return objDataTable;
            }
    View Code
  • 相关阅读:
    Java异常面试题
    Quickhit快速击键
    多态and接口
    Java面向对象编程概述
    学生管理系统--分层开发
    类型转换
    文件上传
    ongl(示例3-6 多值类型的数据处理)
    ongl(原始类型和包装类型)
    Interceptor
  • 原文地址:https://www.cnblogs.com/lyhsblog/p/6265349.html
Copyright © 2020-2023  润新知