Удаление строк в DataGridView c#

  • Автор темы Автор темы baimkin
  • Дата начала Дата начала

baimkin

Client
Регистрация
04.08.2015
Сообщения
283
Реакции
111
Баллы
43
Добрый день!
Есть код получения данных и базы и привязки их к DataGridView через DataSet.
Привязывается и отображается все замечательно, но вот когда возникает необходимость по удалять строки ненужные все зависает.
Вот код привязки и удаления:
Код:
Развернуть Свернуть Копировать
DataSet ds = new DataSet();
da.Fill(ds);       
dataGridView1.DataSource = ds.Tables[0].DefaultView;   

//Удаляем строки где zak равно 0
for (int i = 0; i < dataGridView1.RowCount; i++){
    int zak = int.TryParse(dataGridView1["Column8", i].Value.ToString(), out zak) ? zak : 0;
    if (zak == 0){
        dataGridView1.Rows.RemoveAt(i);
        i--;
        continue;
    }
}
Я так понимаю проблема возникает из за того что данные удаляются с грида, но не удаляются с датасета и он после удаления производит повторную привязку к гриду, пробовал задавать удаления через датасет, все равно виснет.
И еще зависает не на всех таблицах запрошенных из базы, а только на части, таблицы совсем не большие макс 3000 строк. Количество столбцов и их названия одинаковы во всех таблицах. Если строки не пытаться удалять, любые таблицы моментально отображаются в DataGridView .
Уже 3 часа думаю что к чему, но решить проблему не удалось.
 
Если на первый взгляд, то есть логическая ошибка.
Делается цикл, проход по строчкам, и в этом же цикле удаляются строчки. Странно что нет ошибки Out Of Range Exception.
Хотя она возможно и есть, но где то в недрах зенки глушится(скорее всего из за этого и зависает). Это же я так понимаю в зенке делается?
Порекомендовал бы в студии написать код, отладить, а потом перенести в зенку. Так будет быстрее и нервов меньше потратится.:-)
 
  • Оценить
Реакции: baimkin
а может просто 10-ю строку закоментить, ну 11-я для чего ??
10 я строка в моем варианте нужна т.к после того как удаляется строка, то на ее место смещается следующая и если не уменьшать i на 1 единицу назад, то он перескочит сместившуюся строку.
11 строка нужна для того чтобы цикл сразу продолжился т.к у меня в коде после if {} если строку не пришлось удалять идет обработка строки, изменение цвета, размера и т.д, прост я ее убрал с примера т.к она не связана с зависанием.
 
Если на первый взгляд, то есть логическая ошибка.
Делается цикл, проход по строчкам, и в этом же цикле удаляются строчки. Странно что нет ошибки Out Of Range Exception.
Хотя она возможно и есть, но где то в недрах зенки глушится(скорее всего из за этого и зависает). Это же я так понимаю в зенке делается?
Порекомендовал бы в студии написать код, отладить, а потом перенести в зенку. Так будет быстрее и нервов меньше потратится.:-)

Да пока еще делаю для зенки, но она так ускоряет обучение c# что скоро буду переводить программу в отдельное приложение, да и работать с большим количеством WinForm и переключатся между ними в зенке не удобно, а у меня вся программа на них, все таки зенка больше для других целей сделана.
 
Да пока еще делаю для зенки, но она так ускоряет обучение c# что скоро буду переводить программу в отдельное приложение, да и работать с большим количеством WinForm и переключатся между ними в зенке не удобно, а у меня вся программа на них, все таки зенка больше для других целей сделана.
Насчет ускорения обучению C# можно поспорить.:-)
Т.к. как ты заметил, она не под то заточена.
Да, может какие то азы можно и в зенке изучить, но имхо, их же проще будет изучить и в студии, тупо потому что там удобнее.
А если ты активно юзаешь WinForms, то делать это все в зенке, это вообще маньячество.:D
В зенке надо каждый элемент ручками прописывать, а в студии ты бы кинул его на форму через drag&drop и в свойствах с комфортом установил нужные значения.
От зенки ты сможешь уйти в том случае, если делаешь для себя. Если на продажу, то потом придется пихать обратно в зенку.
Собственно у меня так и получилось. Сначала делал все в студии под WPF, а потом переносил в зенку, для защиты.
 
  • Оценить
Реакции: Dimionix
Я все формы делаю в студии, потом уже оттуда перекидываю в зенку, но да это конечно еще то извращение, особенно когда между формами переключатся приходится.
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)