|
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
|
||||||
DataGridView "Строки нельзя программным способом добавить в коллекцию строк DataGridView"22.10.2021, 14:15. Показов 10052. Ответов 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. Значения по умолчанию новой строки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|