Datagridview c как очистить
Перейти к содержимому

Datagridview c как очистить

  • автор:

Очистка DataGridView или удаление всех записей

Сейчас разрабатываю приложение, которое работает с базой данных и производит вывод информации в элемент DataGridView . И на одном из этапов разработки мне понадобилось очистить весь DataGridView. Вроде бы элементарная задача, однако решить её первым возникшим у меня в голове способом мне не удалось.

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

 dataGridView2.Rows.Clear(); 

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

 int rowsCount = dataGridView2.Rows.Count; for (int i = 0; i
 while (dataGridView2.Rows.Count !== 0)

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

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

 dataGridView2.DataSource = new object(); 

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

 dataGridView2.DataSource.Clear(); 

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

Платное бесплатно. Выпуск 5
HTML с нуля. Лекция 2

Stas Kuryan

IT entrepreneur / Product Owner / Engineer — Готов к худшему, в надежде на лучшее.

Это также Вам может понравиться

Особенность циклов for в JavaScript
Как массово проверить тИЦ сайтов
Программа для распознавания букв на C#

10 комментариев

Так наверное проще будет)
[csharp]dataGridView2.Rows.Clear[/csharp]
Stafox Автор
Согласен. Только в моём случае метод Clear() не сработал.
[csharp]dataGridView1.Rows.Count = 0;[/csharp]

dataGridView1.Rows.Count = 0

Сount — только на чтение
На DataGrid прицеплен DataSource?
Stafox Автор

А если данные через DataSource, тогда .Rows.Clear() не поможет.
Тут нужно сделать вакуум в DataSource:
dataGridView1.DataSource = new object();

Не делал отладку, я вижу?

for (int i = 0; i < dataGridView2.Rows.Count; i++)

При каждом входе в цикл проверяется Count. Раз вы удаляете одну строку в каждом шаге цикла, то Count будет каждый раз уменьшаться. У вас i завязан на текущее кол-во строк. Поэтому и удаляется только половина.
1) i=0; Count=4;
2) i=1; Count=3;
3) i=2; Count=2;//И тут вы неожиданно выходите из цикла, потому что отладкой пользоваться не умеете.
Если бы вы сначала запомнили где-то Count, а потом сравнивали i с запомненным, то все было бы норм.

Stafox Автор

Да. Все верно. Проблема с этим. Вы просто молодец, что заметили проблему в статье 2011 года моих университетских времен ��
Основной посыл статьи в том, что метод clear ничерта не работал:)

Datagridview c как очистить

Как корректно очистить только содержимое столбца DataGrid и удалить все строки, но чтобы хедеры остались, и при добавлении в таблицу опять появлялись строки?

Спросил kiborg
764 дн., 9 час., 55 мин. назад

Новые ответы

Если есть привязка DataGridView к источнику данных, то нужно очистить источник данных. Например, удалить все строки из таблицы или все элементы из списка. Также можно попробовать установить источник данных в null :

dataGridView.DataSource = null; 

Если строки добавлялись в gridView вручную, то удалять их тоже нужно вручную, как-то так:

dataGridView.Rows.Clear(); 

С# Как удалить колонку в DataGridView?

Создадим новый проект типа Windows Forms Application. Затем добавим на форму два элемента управления: кнопку (Button) и DataGridView (dgv).

Для примера создадим и добавим в DataGridView три колонки.

dgv.Columns.AddRange( new DataGridViewTextBoxColumn() < Name = "dgvID", HeaderText = "ID" >, new DataGridViewTextBoxColumn() < Name = "dgvName", HeaderText = "Имя" >, new DataGridViewTextBoxColumn() < Name = "dgvLastName", HeaderText = "Фамилия" >);

Данный код поместим в обработчике события Form_Load. А код, отвечающий за удаление, который будет приведен ниже, поместим в обработчике события Button_Click.

Все колонки хранятся в коллекции Columns. Для удаления колонки (элемента коллекции) используются два метода: Remove и RemoveAt.

Как удалить колонку в DataGridView по названию?

Для удаления колонки по названию используется метод Remove.

Например, давайте рассмотрим, как удалить первую колонку в DataGridView.
dgv.Columns.Remove(«dgvID»);
Узнать или получить название колонки всегда можно с помощью свойства Name.

//получаем название первой колонки string colName = dgv.Columns[0].Name; //удаляем колонку dgv.Columns.Remove(colName);

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

Например, в следующем примере показано, как удалить последнюю колонку.
dgv.Columns.Remove(dgvLastName);
Как удалить колонку в DataGridView по индексу?

Для удаления колонки по индексу используется метод RemoveAt.

Индекс первой колонки всегда равен нулю, а индекс последней:
int lastCol = dgv.Columns.Count — 1;
Например, давайте рассмотрим, как удалить вторую колонку в DataGridView.
dgv.Columns.RemoveAt(1);
Индекс колонки можно получить с помощью свойства Index.

//получаем индекс второй колонки int indexCol = dgv.Columns["dgvName"].Index; //удаляем колонку dgv.Columns.RemoveAt(indexCol);

Как удалить все колонки в DataGridView?

Для удаления всех колонок в DataGridView используется метод Clear.
dgv.Columns.Clear();

Как очистить таблицу в DataGridView?

Как очистить dataGridView
Доброго всем времени суток. Помогите разобраться. За раннее извините если такая тема уже.

Как очистить DataGridView
Есть таблица "телефонный справочник" для которой нужно сделать поиск. При нажатии на кнопку я .

Как очистить строку в DataGridView
Доброго времени суток! У меня возник вопрос с DataGridView. Как очистить строку в DGV, если в ней в.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *