Amar chand123 Ответов: 2

Передача данных из одного datagridview во второй datagridview


Я пытаюсь перенести отмеченные флажком данные в другой DataGridView показать проблему без ошибок
Проблема, когда я проверил только одну строку с первого элемента управления datagridview, то во втором компоненте datagridview только создать столбец, но данные не показывают , но когда я проверил второй ряд от первого объекта datagridview, то во втором компоненте datagridview только показать вторую выбранных данных не как

Я стараюсь
private void LoanData()
        {
            String connstring = ConfigurationManager.ConnectionStrings["FincorpData"].ConnectionString;
            using (OleDbConnection con = new OleDbConnection(connstring))
            {
                con.Open();
                using (OleDbDataAdapter da = new OleDbDataAdapter("select InstallmentNumber, LoanNumber, InstallmentDate, LoanAmount from installment where LoanNumber = @LoanNumber", con))
                {
                    da.SelectCommand.Parameters.AddWithValue("@LoanNumber", txtLoanNumber.Text);
                    DataTable dt = new DataTable();
                    da.Fill(dt);
                    dataGridView1.DataSource = dt;
                    dataGridView1.Columns[0].Width = 50;
                    dataGridView1.Columns[0].ReadOnly = true;
                    dataGridView1.Columns[1].Width = 85;
                    dataGridView1.Columns[1].ReadOnly = true;
                    dataGridView1.Columns[2].Width = 110;
                    dataGridView1.Columns[2].ReadOnly = true;
                    dataGridView1.Columns[3].Width = 80;
                    dataGridView1.Columns[3].ReadOnly = true;
                    
                }
            }
            DataGridViewCheckBoxColumn chbox = new DataGridViewCheckBoxColumn();
            chbox.HeaderText = "";
            chbox.Width = 30;
            chbox.Name = "checkBoxColumn";
            dataGridView1.Columns.Insert(0, chbox);

        } 

private void btnFind_Click(object sender, EventArgs e)
        {
            if (IsValidated())
            {
                try
                {
                    
                    LoanData();
                    

                }
                catch (ApplicationException ex)
                {
                    MessageBox.Show("Error:" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }


Что я уже пробовал:

Этот код для отображения данных во втором DataGridView

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("InstallmentNumber");
            dt.Columns.Add("LoanNumber");
            dt.Columns.Add("InstallmentDate");
            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                bool isSelected = Convert.ToBoolean(row.Cells["checkBoxColumn"].Value);
                if (isSelected)
                {
                    dt.Rows.Add(row.Cells[1].Value, row.Cells[2].Value, row.Cells[3].Value);
                }
            }
            dataGridView2.DataSource = dt;
        }

2 Ответов

Рейтинг:
2

OriginalGriff

Начните с выяснения того, что именно происходит - используйте отладчик, чтобы посмотреть на ваш код во время его выполнения. Если вы не знаете, как его использовать, то быстрый Google для "Visual Studio debugger" должен дать вам необходимую информацию.

Поместите точку останова в первую строку функции и запустите код через отладчик. Затем посмотрите на свой код и на свои данные и определите, что должно произойти вручную. Затем по одному шагу в каждой строке проверяйте, что то, что вы ожидали, произойдет именно так, как и произошло. Когда это не так, тогда у вас есть проблема, и вы можете вернуться назад (или запустить ее снова и посмотреть более внимательно), чтобы выяснить, почему.

Извините, но мы не можем сделать это за вас - пришло время вам освоить новый (и очень, очень полезный) навык: отладку!


Рейтинг:
1

CHill60

Далее к решению 1 - Взгляните на эту статью проекта кода, чтобы начать отладку. Сейчас он немного устарел но все принципы остаются в силе
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

Вот предложения Microsoft
Учебник: отладка кода C# - Visual Studio | Microsoft Docs[^]
Первый взгляд на отладчик - Visual Studio | Microsoft Docs[^]

Конечно, есть много других, которые можно найти в Интранете