[ 一线风 | 2009-11-4 17:41:02 | 阅读: 908 | 分类: 工作相关 | Tag: C# Oracle Package 记录集 游标 | 永久链接 | 评论: 0 ]

C#里的调用代码

C#代码
  1. [Test]   
  2.         public void Page1Test()   
  3.         {   
  4.             using(Database db = DBFactory.Create())   
  5.             {   
  6.                 const string sql = " select * from test_temp where ID < 1000 order by id asc ";   
  7.   
  8.                 OracleCommand cmd = new OracleCommand("PAGESPLIT_PKG.PAGESPLIT_SP",db.Connection);   
  9.                 cmd.CommandType = CommandType.StoredProcedure;   
  10.                 OracleParameter p1 = new OracleParameter("pagesize", OracleDbType.Int32);   
  11.                 p1.Direction = ParameterDirection.Input;   
  12.                 p1.Value = 20;   
  13.                 OracleParameter p2 = new OracleParameter("pageindex", OracleDbType.Int32);   
  14.                 p2.Direction = ParameterDirection.Input;   
  15.                 p2.Value = 2;   
  16.                 OracleParameter p3 = new OracleParameter("sqltext", OracleDbType.Varchar2);   
  17.                 p3.Direction = ParameterDirection.Input;   
  18.                 p3.Value = sql;   
  19.                   
  20.                 OracleParameter p4 = new OracleParameter("Records_out", OracleDbType.Int32,DBNull.Value,ParameterDirection.Output); //就算是空值也要写,否则是会出错的   
  21.                 OracleParameter p5 = new OracleParameter("table_out", OracleDbType.RefCursor,DBNull.Value, ParameterDirection.Output);   
  22.                    
  23.                 cmd.Parameters.Add(p1);   
  24.                 cmd.Parameters.Add(p2);   
  25.                 cmd.Parameters.Add(p3);   
  26.                 cmd.Parameters.Add(p4);   
  27.                 cmd.Parameters.Add(p5);   
  28.   
  29.                 OracleDataAdapter da = new OracleDataAdapter(cmd);   
  30.   
  31.   
  32.                 DataSet ds = new DataSet();   
  33.                 da.Fill(ds);   
  34.   
  35.                 Console.WriteLine(ds.Tables.Count);   
  36.                 Console.WriteLine(ds.Tables[0].TableName);   
  37.                 Console.WriteLine(ds.Tables[0].Rows.Count);   
  38.                 Console.WriteLine("结果:" + cmd.Parameters["Records_out"].Value.ToString());   
  39.   
  40.                 foreach(DataRow  row in ds.Tables[0].Rows)   
  41.                 {   
  42.                     Console.WriteLine(row[1]);   
  43.                 }   
  44.             }   
  45.         }   

 阅读全文及评论...