|
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
|
||||||
DataGridView "Строки нельзя программным способом добавить в коллекцию строк DataGridView"22.10.2021, 14:15. Показов 10023. Ответов 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. Значения по умолчанию новой строки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
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: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|