Теперь я заполняю данные из базы данных Oracle с помощью ADO. net с помощью dataadapter.fill (datatable) и использую то же самое для отображения в элементе управления представлением сетки данных. Но это занимает 5 минут, чтобы загрузить 2000 записей.
Что я могу сделать в этой ситуации?
Я пытался использовать набор данных вместо dabatable, и теперь в представлении сетки ничего не происходит.
метод загрузки gridview -
private void ViewSelectedJobHistory_Load(object sender, EventArgs e)
{
string path = @"c:\Temp\MyTest.txt";
DateTime time1 = DateTime.Now;
try
{
this.Cursor = Cursors.WaitCursor;
if (dataTableJobHistory != null) //&& dataTableJobHistory.Rows.Count > 0 deb00
{
dgvJobEditsHistory.DataSource = null;
//dgvJobEditsHistory.AutoSizeColumnsMode = 0;
//dgvJobEditsHistory.AutoSizeRowsMode = 0;
dgvJobEditsHistory.ColumnHeadersVisible = false;
dgvJobEditsHistory.DataSource = dataTableJobHistory;
dgvJobEditsHistory.ColumnHeadersVisible = true;
dgvJobEditsHistory.RowHeadersWidth = 30;
dgvJobEditsHistory.Columns[1].Width = 130;
dgvJobEditsHistory.Columns[2].Width = 140;
dgvJobEditsHistory.Columns[3].Width = 130;
jobId.Text += imJob.ID.ToString();
jobName.Text += imJob.Name.ToString();
CreatedBy.Text += imJob.UserCreated;
CreatedDate.Text += imJob.DateCreated.ToString();
this.Cursor = Cursors.Default;
}
}
catch (System.Exception ex)
{
this.Cursor = Cursors.Default;
ErrorHandlerDelegate.DisplayError(ex, logger);
}
объект соединения после изменения набора данных на набор данных-
DataSet dataTable = new DataSet();
//DataTable dataTable = new DataTable();
try
{
if (imDocument != null && selectedJob != null)
{
string query =JobResource.QueryJobHistory;
using (Command imCommand = new Command(query, imDocument.Connection))
//using (Command imCommand = new Command(string.Format("SELECT FID,F_CLASS_NAME,JOB_OPERATION_TYPE,OPERATION_DATE FROM JOB_EXPLORER_FETCH WHERE JOB_ID={0}", selectedJob.ID), imDocument.Connection))
//using (Command imCommand = new Command(query, imDocument.Connection))
{
imCommand.Parameters.Add(new DataParameter("1", DbDataType.String, selectedJob.ID.ToString(), ParameterDirection.Input));
using (DataAdapter dataAdapter = new DataAdapter(imCommand))
{
dataAdapter.Fill(dataTable);
if (dataTable != null)
{
if (instanceJob == false)
{
ViewSelectedJobHistory viewSelectedJobHistory = new ViewSelectedJobHistory(imDocument, dataTable, selectedJob);
viewSelectedJobHistory.Show();
instanceJob = true;
}
}
else
MessageBox.Show("No data edited in selected job", JobResource.MessageBoxTitle, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
}
catch (System.Exception)
{
throw;
}
finally
{
if (dataTable != null)
dataTable.Dispose();
}
}
Приведенная ниже ссылка перенаправит вас к моей подробной проблеме- Как выполнить пользовательскую нумерацию страниц в элементе управления gridview данных с пользовательскими атрибутами, сопоставленными с нисходящей сеткой