Как я могу привязать набор данных к элементу управления DATAGRIDVIEW в windows из c#? - PullRequest
0 голосов
/ 05 апреля 2020

Теперь я заполняю данные из базы данных 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 данных с пользовательскими атрибутами, сопоставленными с нисходящей сеткой

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...