Как удалить строку datagridview, которая имеет текстовое значение вашего текстового поля с циклом?

поэтому у меня есть этот 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);                                
    }
}
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
0
38
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я не знаю, это то, на что вы указываете.

Использование 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());

Поиск: enter image description here

Удаление: enter image description here

Просто поместите 2 строки кода выше внутри вашего цикла.

Я надеюсь, что это помогает!

извините, что беспокою вас, мой код работал, у меня просто был метод, который очищает текстовые поля после удаления из datagridview1, поэтому у меня никогда не было способа удалить его из второго datagridview, я ценю усилия, и ваш код тоже работает.

roudlek 17.05.2022 19:32

Я думаю, что есть несколько способов, которыми вы можете попробовать

#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, я ценю усилия, и ваша первая простая итерация работает, вторая один выдает ошибку > Информация об удаленной строке недоступна через строку. спасибо !

roudlek 17.05.2022 19:53

Другие вопросы по теме