Мне нужно изменить следующий код, чтобы количество строк ограничено.Заполнение набора данных с помощью dataadapter с ограничением строки
// 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». Пройдите мимо вашего «Заполнить», затем посмотрите на свойство «Таблицы» на множестве в отладчике. Поскольку вы явно не рассматривали таблицу, вы можете использовать пример 'ds.Tables [0] .TableName'. –
Почему код не должен бросаться? Вы только что создали набор данных, и в то время нет таблиц, но вы пытаетесь передать индекс 0 функции? – Jimmy