c datagridview очистить таблицу

2 Spooks [2011-03-17 01:10:00]

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

Вот мой код, пробующий целую кучу удалений

Моя кнопка удаления вызывает loadMSXGridView, мне нужно только обновить все, потому что элементы в моем datagridview связаны с номером элемента, который не останется тем же самым

c# winforms datagridview

5 ответов

0 Решение Spooks [2011-03-17 19:08:00]

Моя ошибка, все работало после запуска отладки, которую я нашел Элементы примечаний не удалялись, поэтому они удалялись, добавляя те же элементы обратно. Я удаляю элементы из раздела RemarkElement, и он работает, спасибо за вашу помощь всем!

В моем ограниченном опыте привязки данных нелегко редактировать источник данных. Вы должны обрабатывать свои данные с помощью одной из привязки строк или других событий. Однако, если вы хотите отредактировать источник данных, вам в основном нужно клонировать структуру, а затем импортировать строки. Поэтому в этом смысле вы должны вернуться к своему источнику данных и выбрать именно то, что хотите.

Если вы хотите фильтровать/редактировать свои данные, вот как вы можете это сделать:

Изначально вы привязываетесь к данным:

вам следует продолжить привязку данных; либо скажите таблице, чтобы очистить себя (и повторно заполнить данные), либо просто назначьте другую таблицу данных dgv.DataSource .

Если вы просто хотите добавить другой datatable в качестве источника данных, выполните следующие действия:

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

Я бы предложил установить DataSource вашего DataGridView на BindingSource и вместо этого изменить DataSource BindingSource:

который решает большинство проблем, так как вам не нужно беспокоиться о том, как привязаны ваши данные.

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

this .dataGr >// удаление всех строк
int count = this .dataGridView1.Columns.Count;
for ( int i = 0; i // цикл удаления всех столбцов
<
this .dataGridView1.Columns.RemoveAt(0);
>

Метод Clear удаляет все строки, которые были заполненными или пустыми.

Метод RemoveAt удаляет строки, которые имеют поле под индексом 0. В цикле мы постоянно удаляем строку 0, потому что после удаления на ее место поступает строка 1, которая стает 0-ой строкой.

Сейчас разрабатываю приложение, которое работает с базой данных и производит вывод информации в элемент DataGridView . И на одном из этапов разработки мне понадобилось очистить весь DataGr >

Начнем с того, что метод Clear() не работает.

Тогда на помощь приходит цикл:

Производим удаление последней записи до тех пор, пока количество записей не будет равно нулю.

Как подсказали в комментариях, происходило это потому, что вероятно был биндинг с DataSource .
В таком случае стоит попробовать следующий вариант:

Но сейчас я бы предпочел получить BindingSource и очистить его.

Вот так нужно очищать DataGr >Clear() не срабатывает. Вот такой своеобразный клининг получился.

Оцените статью