|
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
|
||||||
DataGridView "Строки нельзя программным способом добавить в коллекцию строк DataGridView"22.10.2021, 14:15. Показов 9879. Ответов 72
Метки нет (Все метки)
При попытке добавить в DGV данные из Textbox появляется ошибка "Строки нельзя программным способом добавить в коллекцию строк DataGridView, если элемент управления привязан к данным." в строке dataGridView1.Rows.Add();
0
|
||||||
| 22.10.2021, 14:15 | |
|
Ответы с готовыми решениями:
72
Заполнять DGV через textBox: Строки нельзя программным способом добавить в коллекцию строк DataGridView Вставка строк в datagridview программным способом + сортировка DataGridView. Нельзя программным способом добавить в коллекцию строк, если контрол привязан к данным |
|
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
|
||
| 25.10.2021, 09:31 [ТС] | ||
|
Добавлено через 4 часа 34 минуты Я по прежнему не теряю надежду на решение.
0
|
||
|
|
||||||||||||
| 25.10.2021, 09:47 | ||||||||||||
|
Чтоб не делать лишних запросов к БД, обновите данные в БД, с помощью UPDATE, потом, если не было ошибок обновления БД, эти же данные добавьте к коллекции, к которой привязан DGV.
только не забудьте, перед добавлением в коллекцию, в запросе на INSERT получить ID новой записи
Добавлено через 2 минуты если делаете UPDATE - менять значения в коллекции по индексу в коллекции, если INSERT - listDGV.Add(newData), если DELETE - listDGV.Remove(dataToDelete) или по индексу. Добавлено через 2 минуты List<T>.IndexOf Метод
0
|
||||||||||||
|
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
|
||
| 25.10.2021, 10:16 [ТС] | ||
|
0
|
||
|
|
||
| 25.10.2021, 10:19 | ||
|
Добавлено через 1 минуту А вообще лучше работать с ADO .NET, читать ридером в коллекции, коллекции привязывать куда надо Руководство по ADO.NET и работе с базами данных
1
|
||
|
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
|
||
| 25.10.2021, 10:20 [ТС] | ||
|
0
|
||
|
|
||||
| 25.10.2021, 10:27 | ||||
|
Акогда освоите всё что выше, то тогда уже переходить к этому
Руководство по Entity Framework Core Но это на вкус и цвет, кому нравится, кому нет... Мне больше голый ADO .NET нравится, EF использую только в простых случаях. Добавлено через 3 минуты Добавлено через 2 минуты
0
|
||||
|
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
|
||
| 25.10.2021, 10:27 [ТС] | ||
|
Про конструктор - мне уже писали, я применял, но ошибка никуда не девается. То ли это мой невысокий уровень, то ли что-то еще.
0
|
||
|
|
|
| 25.10.2021, 13:10 | |
Сообщение было отмечено Jim Reinor как решение
Решение
Jim Reinor,
Накидал примерчик. В качестве БД обычный txt-файл. Сначала файл такой: Запускаем прогу, читаем из "БД" Добавим запись: Смотрим файл: Грид в форме1 обновлен: Я пока сделал только форму "Вставить". Остальные кнопки наверное сможете сделать по аналогии. Что вам нужно от сюда взять: 1. Класс модели для грида, основанный на BindingList. Сам метод обновления BindingList и грида. 2. Способ передачи данных между окнами ( здесь пока со второго окна в первое ). Я использовал способ Родителя-Дочернего и публичных методах в форме 1. Если будет время, доделаю остальные две кнопки и формы. Ну и на счет работы с самой БД - делайте именно так, как вам посоветовал Andrey-MSK в этом посте. Это правильный подход. В моем примере обновление грида происходит после повторной вычитки измененного файла "БД".
1
|
|
|
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
|
|||||||
| 25.10.2021, 16:20 [ТС] | |||||||
|
Интересно, сейчас начну пробовать применить на практике.
Добавлено через 30 минут Эх, фреймворк не встает, и он не понимает знак => из лямбда выражений, и без него тоже ошибкой считает. И отказывается понимать PropertyChanged?.Invoke и CallerMemberName Добавлено через 38 секунд Попробую пока другие возможности, которые тут приводил Andrey-MSK Что означает строка dataGridView1.DataSource = ds.Tables[0]; из примера? Почему в примере таблица выбирается, а у меня выбивает NullReferenceException? И по старому так тоже не работает: dataGridView1.DataSource = ds.Tables["[Equipment]"].DefaultView; Все, починил Добавлено через 4 минуты С подключением через App.Config и одновременно правильную реализацию DataTable разобрался, спасибо Andrey-MSK. Надо действовать дальше, и переходить к обработке данных.
Только смущает эта строка: dataGridView1.DataSource = ds.Tables[0]; Как отобразить другие таблицы в других DGV? dataGridView2.DataSource = ds.Tables[1]; - не работает, как и старый вариант теперь для первой таблицы dataGridView1.DataSource = ds.Tables["[Equipment]"].DefaultView; Где просмотреть индекс таблицы для того, чтобы поместить ее в DataSet? Добавлено через 24 минуты Нашел еще один интересный способ реализации, пока разбираюсь в нем. Если найду решение своей темы - то выложу код. Добавлено через 48 минут Ну что же, добавление через SQL-запрос у меня получилось, только как сделать обновление DGV после закрытия формы добавления?
0
|
|||||||
|
|
|||||
| 25.10.2021, 19:03 | |||||
|
Данные выбираются из БД согласно запросам, их кол-во и состав разный, но привязка грида к ds.Tables[0] решает эту проблему.
0
|
|||||
|
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
|
|
| 25.10.2021, 20:06 [ТС] | |
|
Я уже все сделал. Кроме поиска. Сейчас отлажу поиск и выложу.
Добавлено через 1 час 0 минут Сейчас уже час парюсь с поиском строки в ListView, стандартный метод поиска от DGV к нему не подходит.
0
|
|
|
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
|
||||||||||||||||
| 25.10.2021, 21:17 [ТС] | ||||||||||||||||
|
В общем все работает. В данном примере - для одной таблицы, но ничто не мешает прописать и несколько. Вставка/обновление/удаление. Кроме злосчастного поиска в ListView - весь вечер его искал, проще застрелиться чем написать, в отличие от DGV реализуется он через не пойми как, это какой-то кошмар. На Киберфоруме в фильтре, ни в Интернете, ни в роликах нормального кода поиска в ListView я тоже не нашел.
Основные недостатки программы - отсутствие поиска, и возможности автоматически обновлять данные после закрытия формы - обновлять придется всегда в ручную по кнопке со стрелками. Основная форма (и функция удаления записей):
Обновление данных
0
|
||||||||||||||||
|
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
|
|
| 25.10.2021, 21:49 [ТС] | |
|
Поиск по ListView сгодится любой, как напрямую через textBox, так и через форму2. Предпочтительнее через форму2, если это реально, но можно и на той же форме через textbox.
0
|
|
|
|
|||||||||||||||||||||||||||
| 26.10.2021, 05:39 | |||||||||||||||||||||||||||
|
Jim Reinor, Открывайте и закрывайте соединение в каждом методе с доступом к БД отдельно. Так будет более верно.
Полный набор для работы с БД (SELECT, INSERT, UPDATE, DELETE)
![]() Позднее покажу как редактировать коллекцию. Добавлено через 36 минут Редактирование коллекции и запись в БД. На заголовки методов не обращайте внимания, это команды из WPF. Логика работы с коллекциями одинаковая. В комментариях написал важные моменты:
1. Основы LINQ 2. Синтаксис LINQ Добавлено через 8 минут В моём примере поиск в коллекции с помощью LINQ по ID записи
0
|
|||||||||||||||||||||||||||
|
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
|
|
| 26.10.2021, 06:17 [ТС] | |
|
Ну для поиска совсем не обязательно подключаться к БД, можно сделать поиск по проверке "если содержит", но алгоритмы от DGV не могут обеспечить поиск по ListView.
0
|
|
|
|
||
| 26.10.2021, 06:23 | ||
|
0
|
||
|
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
|
||||||
| 26.10.2021, 06:42 [ТС] | ||||||
|
В моем коде вроде нет привязки к наборам данных. Как тогда определить коллекцию, и сделать поиск по ней?
Мой старый рабочий поиск из DataGridView (в ListView нет таких методов перебора)
0
|
||||||
|
|
|||||||
| 26.10.2021, 06:56 | |||||||
0
|
|||||||
| 26.10.2021, 06:56 | |
|
Строки нельзя добавить в коллекцию строк DataGridView, если элемент управления привязан к данным "Строки нельзя добавить в коллекцию строк DataGridView, если элемент управления привязан к данным" Добавить строки DataGridView в коллекцию Добавить элемент в коллекцию привязанную к DataGridView Ошибка "Исключение в DataGridView" при попытке добавить таблицу в DataGridView. Значения по умолчанию новой строки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы
Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
|
|
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока
Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
|
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
|
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат»
Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
|
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
|