поэтому у меня есть этот datagridview2, который я использую для поиска.
и когда я ищу и нахожу нужную строку, я нажимаю на эту строку, и все значения переходят в текстовые поля, и есть кнопка, которая удаляет запись при нажатии, используя идентификатор в текстовом поле 1,
в другом datagridview1 у меня есть метод, который обновляет все записи datagridview, когда я удаляю этот элемент по его идентификатору.
Итак, вернемся к datagridview2, я хочу, чтобы, когда я удаляю эту строку, строка удалялась также из datagridview, без использования и обновления моего datagridview с помощью моего метода refilldatagridview(), который я создал,
когда я использую dataGridView2.Rows.Remove(row);
работает без цикла, как и индекс removeAt
проблема в цикле, он никогда не входит в if, и я не знаю, почему
foreach (DataGridViewRow row in dataGridView2.Rows)
{
if (row.Cells[0].Value.ToString().Equals(textBox1.Text))
{
MessageBox.Show("Match deleted");
dataGridView2.Rows.Remove(row);
}
}
Я не знаю, это то, на что вы указываете.
Использование LINQ (попробуйте имя столбца вместо индекса столбца, если я использую индекс столбца, возникает ошибка)
dataGridView1.Rows.RemoveAt(dataGridView1.Rows.Cast<DataGridViewRow>().Where(w => w.Cells["Value1"].Value.ToString() == textBox1.Text).Select(s => s.Index).FirstOrDefault());
dataGridView2.Rows.RemoveAt(dataGridView2.Rows.Cast<DataGridViewRow>().Where(w => w.Cells["Value1"].Value.ToString() == textBox1.Text).Select(s => s.Index).FirstOrDefault());
Просто поместите 2 строки кода выше внутри вашего цикла.
Я надеюсь, что это помогает!
Я думаю, что есть несколько способов, которыми вы можете попробовать
#1 простая итерация
for (int i = 0; i < dataGridView2.Rows.Count; i++)
{
if (dataGridView2[i].Cells[0].Value.ToString().Equals(textBox1.Text))
dataGridView2.Rows.Remove(dataGridView2[i]);
}
# 2 Если вы хотите использовать dataTable для поиска
var query = dTable.AsEnumerable().Where(r => r.Field<string>(columnName) == textBox1.Text);
foreach(var row in query.ToList())
{
row.Delete();
}
извините за беспокойство, мой код работал, у меня просто был метод, который очищает текстовые поля после удаления из datagridview1, поэтому у меня никогда не было способа удалить его из второго datagridview, я ценю усилия, и ваша первая простая итерация работает, вторая один выдает ошибку > Информация об удаленной строке недоступна через строку. спасибо !
извините, что беспокою вас, мой код работал, у меня просто был метод, который очищает текстовые поля после удаления из datagridview1, поэтому у меня никогда не было способа удалить его из второго datagridview, я ценю усилия, и ваш код тоже работает.