У меня есть приложение для Windows, в котором я собираюсь удалить datarow из datatable. Но у меня есть исключение.Удалить Datarow из Datatable
Данные DataRow не находятся в текущем DataRowCollection.
Код:
DataTable dt = new DataTable();
DataRowView currentDataRowView = (DataRowView)DataGridView1.CurrentRow.DataBoundItem;
DataRow row = currentDataRowView.Row;
dt.Rows.Remove(row); // exception here.
DataGridView1.DataSource = dt;
информация Объект DataTable DT как показаны на рисунке.
Я думаю, что я уже выбрал datarowview для datarow.
EDIT: dt был создан из другого DataGridView.
foreach (DataGridViewRow row in DatGridView2.Rows)
{
DataGridViewCheckBoxCell check = row.Cells[0] as DataGridViewCheckBoxCell;
if (check.Value != null)
{
if ((bool)check.Value)
{
//this row has a checkBox set to true (tick is added)
//add this row to dataTable ...
DataRow myRow = (row.DataBoundItem as DataRowView).Row;
DataRow dr = dt.NewRow();
dr[0] = myRow[0];
dr[1] = myRow[1];
dr[2] = myRow[2];
dr[3] = myRow[3];
if (!dt.Rows.Contains(dr[0]))
{
dt.Rows.Add(dr);
}
}
}
У вашего 'dt' нет строк, поэтому ничего не удалять. – LarsTech
dt.Rows.Count = 2. У него есть строки. –
Где dt получает строки из? На основе вашего кода объявляется несколько строк, прежде чем пытаться удалить строку из нее. – cadrell0