本文采用Oracle 11g,采用.net 企業庫訪問數據庫。
首先引用如下包
Microsoft.Practices.EnterpriseLibrary.Common
Microsoft.Practices.EnterpriseLibrary.Data
下面是返回一個參數時的代碼。
代碼
OracleDatabase db = new OracleDatabase("數據庫連接字符串");
DbCommand cmd = db.GetStoredProcCommand("SingleRefTest");//過程名字大小寫無所謂
DataSet ds = db.ExecuteDataSet(cmd);
this.dataGridView1.DataSource = ds.Tables[0];
相應的存儲過程必須包含一個cur_OUT 的一個in out sys_rfcursor參數。
據說,這個cur_OUT名字必須為這個,尚待求證。
下面為返回兩個參數的代碼。
object[] results = new object[2];
OracleDatabase db = new OracleDatabase("數據庫連接字符串");
DbCommand cmd = db.GetStoredProcCommand("MultipleRefTest", results);
DataSet ds = db.ExecuteDataSet(cmd);
this.dataGridView2.DataSource = ds.Tables[0];
this.dataGridView3.DataSource = ds.Tables[1];
這里值得注意的是,在數據庫過程中,必須包含兩個OUT型參數,貌似名字沒有要求,本人用的cur_OUT和cur_OUT1完全可以。
值得注意的是,這里只能為out型,不能為in out 的那種。