Как вставить данные в следующую строку в datagridview с помощью C #? - PullRequest
0 голосов
/ 11 сентября 2018

Добрый день!

Пожалуйста, помогите мне в моей заботе. У меня есть код, который позволяет добавлять строки в созданную мной таблицу данных с именем dgvSchedule. Я хочу передать данные из другого datagridview dgvCalendar, дважды щелкнув данные в ячейке. Моя проблема в том, что я могу добавить данные только в первую строку в dgvSchedule, а следующие строки пусты.

Я приложил скриншот также моего приложения.

Спасибо.

private void dgvCalendar_DoubleClick(object sender, EventArgs e)
{
    if (cmbTimeSched.Text != "")
    {
        string yearnow = DateTime.Now.Year.ToString();
        int year = Convert.ToInt32(yearnow);
        int rowIndex = dgvCalendar.CurrentCell.RowIndex;
        int colIndex = dgvCalendar.CurrentCell.ColumnIndex;
        if (dgvCalendar.Columns[colIndex].HeaderText != "SUN")
        {
            string Daynum = dgvCalendar.Rows[rowIndex].Cells[colIndex].Value.ToString();
            int dayNum = Convert.ToInt32(Daynum);
            int num = DateTime.Parse("" + selectMonths.Text + year).Month;
            DateTime dateSelected = new DateTime(year, num, dayNum);
            dgvSchedule.Rows.Add();
            dgvSchedule.Rows[0].Cells[0].Value = lblIDNum.Text;
            dgvSchedule.Rows[0].Cells[1].Value = cmbTimeSched.Text;
            dgvSchedule.Rows[0].Cells[2].Value = dgvCalendar.Columns[colIndex].HeaderText.ToString();
            dgvSchedule.Rows[0].Cells[3].Value = dateSelected.ToString("MM/dd/yyyy");
        }
        else
        { MessageBox.Show("You selected a date that is on SUNDAY!"); }                                  
    }
    else
    { MessageBox.Show("PLEASE SELECT TIME SCHEDULE FIRST!"); }
}

MyApplication:

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Мое другое предложение - вы можете использовать набор данных для заполнения сетки.

                DataTable dt1 = new DataTable();

                //remove all the rows of table
                while (dgvSchedule.Rows.Count > 1)
                {
                    dgvSchedule.Rows.RemoveAt(0);
                }

                //fill the table with updated records 
                cnn.Open();
                MySqlDataAdapter adp = new MySqlDataAdapter("query for fetch the results from data base which you need to fill in the table", cnn);
                adp.Fill(dt1);
                dgvSchedule.DataSource = dt1;
                adp.Dispose();
                cnn.Close();
0 голосов
/ 11 сентября 2018

Поскольку вы специально говорите, чтобы заполнить запись в строке [0] в таблице dgvSchedule.

 int count=dgvSchedule.Rows.Count;
 dgvSchedule.Rows[count+1].Cells[0].Value = lblIDNum.Text;
 dgvSchedule.Rows[count+1].Cells[1].Value = cmbTimeSched.Text;
 dgvSchedule.Rows[count+1].Cells[2].Value=
         dgvCalendar.Columns[colIndex].HeaderText.ToString();
 dgvSchedule.Rows[count+1].Cells[3].Value = dateSelected.ToString("MM/dd/yyyy");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...