首页 > 数据库技术 > 详细

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

时间:2017-01-09 16:15:30      阅读:660      评论:0      收藏:0      [点我收藏+]
技术分享
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

 

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

原文:http://www.cnblogs.com/lyhsblog/p/6265349.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!