Как я могу скопировать выбранные данные столбца и строки из одного datagridview в другой в C# с помощью checkedlistbox.
как я могу скопировать выбранные данные столбца и строки из одного datagridview в другой в c# с помощью checkedlistbox.
есть два вида datagridview, они есть; datagridview1 и datagridview2.
затем отобразите данные sql в datagridview1. и добавьте столбец "select" с флажками в datagridview1.
после этого добавьте кнопку "Копировать" и checkedlistbox для выбора столбцов, которые нам нужно скопировать/передать данные в datagridview2.
chekAll = checkedlistbox (if (chekAll.Проверено == верно))
когда все элементы выбраны в checkedlistbox. все выбранные данные копируются из datagridview1(dgOne) в datagridview2(dgTwo). этот код в порядке....
но проблема заключается во втором коде (else if (chekAll.Проверено == ложь))*****
проблема заключается в том, что при выборе строк и столбцов с помощью checkedlistbox1 из datagriview1(dgOne) и нажатии кнопки "копировать" выбранные данные в Столбцах записываются строка за строкой в один столбец.
"""когда я выбираю некоторые элементы в checkedlistbox(chekAll), как я могу скопировать или передать значения выбранных строк и соответствующих столбцов из dgOne в dgTwo?????? """
это сообщение об ошибке при запуске второго кода
"входной массив длиннее, чем количество столбцов в этой таблице"
Что я уже пробовал:
if (chekAll.Checked == true) { foreach (DataGridViewRow item in dgOne.Rows) { if ((bool)item.Cells[0].Value == true) { DataTable dt = new DataTable(); dt.Columns.Add("Serial No:"); dt.Columns.Add("Register No:"); dt.Columns.Add("Acedemic Year"); dt.Columns.Add("Full Name"); dt.Columns.Add("Name with Initial"); dt.Columns.Add("Course"); dt.Columns.Add("Address"); dt.Columns.Add("Telephpne No:"); dt.Columns.Add("Province"); dt.Columns.Add("District"); dt.Columns.Add("AGA Division"); dt.Columns.Add("Base of Recruitment"); foreach (DataGridViewRow row in dgOne.Rows) { bool isSelected = Convert.ToBoolean(row.Cells["Column0"].Value); if (isSelected) { dt.Rows.Add(row.Cells[1].Value, row.Cells[2].Value, row.Cells[3].Value, row.Cells[4].Value, row.Cells[5].Value, row.Cells[6].Value, row.Cells[7].Value, row.Cells[8].Value, row.Cells[9].Value, row.Cells[10].Value, row.Cells[11].Value, row.Cells[12].Value); } dgTwo.DataSource = dt; } } }
else if (chekAll.Checked == false) { foreach (DataGridViewRow item in dgOne.Rows) { if ((bool)item.Cells[0].Value == true) { DataTable dt = new DataTable(); dgTwo.DataSource = null; foreach (string s in checkedListBox1.CheckedItems) { dt.Columns.Add(s); } foreach (DataGridViewRow row in dgOne.Rows) { bool isSelected = Convert.ToBoolean(row.Cells["Column0"].Value); if (isSelected) { dt.Rows.Add(row.Cells[1].Value, row.Cells[2].Value, row.Cells[3].Value, row.Cells[4].Value, row.Cells[5].Value, row.Cells[6].Value, row.Cells[7].Value, row.Cells[8].Value, row.Cells[9].Value, row.Cells[10].Value, row.Cells[11].Value, row.Cells[12].Value); } dgTwo.DataSource = dt; } } } }
Garth J Lancaster
Вы не говорите, что "неправильно" с вашим кодом / что он делает (или нет), или даже если он компилируется - может быть, это идея для использования Улучшить вопрос и обновите его ..
Member 14895792
Я улучшил вопрос