首页>计算机>Oracle认证>应用技术>正文
在Oracle中返回多个结果集的处理

www.zige365.com 2008-8-18 15:56:01 点击:发送给好友 和学友门交流一下 收藏到我的会员中心
以下代码显示了如何使用从上述包中返回的两个结果集来填充 DataSet 中的两个相关表:

    create the connection
    OracleConnection conn = new OracleConnection("Data Source=oracledb;
    User Id=UserID;Password=Password;");

    define the command for the stored procedure
    OracleCommand cmd = new OracleCommand();
    cmd.Connection = conn;
    cmd.CommandText = "SELECT_EMPLOYEES_JOBS.GetEmployeesAndJobs";

    add the parameters including the two REF CURSOR types to retrieve
    the two result sets
    cmd.Parameters.Add("cur_Employees", OracleType.Cursor).Direction =
    ParameterDirection.Output;
    cmd.Parameters.Add("cur_Jobs", OracleType.Cursor).Direction =
    ParameterDirection.Output;
    cmd.CommandType = CommandType.StoredProcedure;

    create the DataAdapter and map tables
    OracleDataAdapter da = new OracleDataAdapter(cmd);
    da.TableMappings.Add("Table", "EMPLOYEES");
    da.TableMappings.Add("Table1", "JOBS");

    create and fill the DataSet
    DataSet ds = new DataSet();
    da.Fill(ds);

    create a relation
    ds.Relations.Add("EMPLOYEES_JOBS_RELATION",
    ds.Tables["JOBS"].Columns["JOB_ID"],
    ds.Tables["EMPLOYEES"].Columns["JOB_ID"]);

    output the second employee (zero-based array) and job title
    based on the relation
    Console.WriteLine("Employee ID: " +
    ds.Tables["EMPLOYEES"].Rows[1]["EMPLOYEE_ID"] +
    "; Job Title: " +
    ds.Tables["EMPLOYEES"].Rows[1].GetParentRow(
    "EMPLOYEES_JOBS_RELATION")["JOB_TITLE"]);

    控制台输出显示了第二个员工的职务:

    Employee ID: 101; Job Title: Administration Vice President

    来自于:http://www.microsoft.com/china/MSDN/library/data/dataAccess/DMSDNorsps.mspx
    遇到的错误:在开发时遇到了未处理的句柄错误,其原因是没有为所有的输出参数返回值。

本新闻共2页,当前在第2页  1  2  

我要投稿 新闻来源: 编辑: 作者:
相关新闻
思科应用技术:oracle里面使用临时表解决表冲突一例
思科应用技术:提高ORACLE数据库的查询统计速度
思科应用技术:浅谈Oracle中优化SQL的原则
思科应用技术:windows优化系统后oracle9i本地连接失败
思科应用技术:在Oracle中获取磁盘空间的使用情况
思科应用技术:Oracle中Decode()函数使用技巧