2
我需要修改以下代碼,以便限制行數。用數據適配器填充行限制的數據集
// create the connection
OracleConnection conn = new OracleConnection("Data Source=oracledb;
User Id=UserID;Password=Password;");
// create the command for the stored procedure
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT_JOB_HISTORY.GetJobHistoryByEmployeeId";
cmd.CommandType = CommandType.StoredProcedure;
// add the parameters for the stored procedure including the REF CURSOR
// to retrieve the result set
cmd.Parameters.Add("p_employee_id", OracleType.Number).Value = 101;
cmd.Parameters.Add("cur_JobHistory", OracleType.Cursor).Direction =
ParameterDirection.Output;
// createt the DataAdapter from the command and use it to fill the
// DataSet
OracleDataAdapter da = new OracleDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);//Here is where I need to limit the rows
我知道有填充方法需要最大數量。
public int Fill( DataSet dataSet, int startRecord, int maxRecords, string srcTable )
不過,我不知道應該傳遞給srcTable要。我存儲的proc有一個REF_CURSOR (OUT TYPES.REF_CURSOR)。
任何幫助,非常感謝。
正如你從代碼片段看到的那樣,在數據集中沒有添加任何表。輸出是一個遊標。 – Jimmy
使用任何數據填充「DataSet」會自動創建並添加一個「DataTable」。通過你的'Fill'後,看看你調試器中集合上的'Tables'屬性。因爲你沒有明確地去修改表格,你可以使用'ds.Tables [0] .TableName'的例子。 –
爲什麼不應該拋出代碼?你剛剛創建了一個數據集,當時沒有表,你仍然試圖將索引0傳遞給一個函數? – Jimmy