|
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
|
|
Библиотека / класс для универсальной работы с DataGridView08.02.2020, 20:25. Показов 3130. Ответов 15
Добрый вечер!
Подскажите пожалуйста, существуют ли универсальные решения (библиотеки) для реализации CRUD операций связки DataGridView и MySql server? Имею в виду при подключении которых к примеру реализовывались все основные методы взаимодействия datagridview и сервера как есть (инлайн редактирование ячейки с отправкой измененного значения на сервер, удаление строки с зеркальным удалением строки из таблицы на mysql, добавления). То есть CRUD библиотека с автоматической реализацией методов INSERT,UPDATE,DELETE,SELECT? В стиле применил и забыл. На просторах есть решение,но оно платное, к примеру Bunifu https://www.youtube.com/watch?v=ae0w2gA_M3U Оно позволяет редактировать грид как есть (по аналогии к примеру с MS Access,Excel). Есть что то подобное из бесплатных решений?
0
|
|
| 08.02.2020, 20:25 | |
|
Ответы с готовыми решениями:
15
Класс/библиотека для работы с БД VBA: Библиотека/класс для работы с окнами - ищу |
|
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
|
|
| 09.02.2020, 13:16 | |
Сообщение было отмечено Сергей1980 как решение
Решение
Решение на основании DataGridView/DataSet/DataAdapter можно написать за десять минут
Добавлено через 1 минуту По ссылке нет автоматической реализации, там тоже надо указывать select/update/delete запросы
2
|
|
|
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
|
||||||
| 09.02.2020, 18:07 [ТС] | ||||||
|
Я в принципе так и понял. В шарпе новичок. Около недели. Но на update уже в принципе написал универсальный метод, который можно просто накинуть на datagrid view, на событие celleditend, которое не зависит от типа вводимых данных, и ячейки которая правится.
Подскажите пожалуйста, как в шарпе реализовать присвоение встроенных методов к объекту,который передается как аргумент к примеру. Имею в виду- я пишу собственный класс, который в конструкторе при вызове будет принимать в качестве аргумента datagridview с формы. Как в классе о наследовать /перезагрузить встроенные методы и связать их с переменной типа datagridview? Просто указать через нижнее подчеркивание? Пример простенький:
Добавлено через 13 минут Это как раз по поводу автоматической реализации.
0
|
||||||
|
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
|
||||||
| 09.02.2020, 18:51 | ||||||
|
Сергей1980, вы наверное имеете ввиду подписку на события?
1
|
||||||
|
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
|
|
| 09.02.2020, 19:04 [ТС] | |
|
Да, наверное , это в c# называется так инициализация встроенных методов?
А этот цикл не подвесит излишне систему, он в отдельном потоке выполняется? Извините, пришел из java просто. То есть как я правильно понял, ваша конструкция инициирует зажигание метода CellEndEdit, когда создаётся экземпляр моего класса и в качестве переменной в него передается datagridview? Если да, то то что нужно, спасибо. Приду домой затестю.
0
|
|
|
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
|
||||||
| 17.02.2020, 23:47 [ТС] | ||||||
|
Удалось добраться до доделки универсального обработчика изменяемой ячейки грида. В общем получилось ,то что нужно.
Метод сам определяет тип поля из таблицы MySql. Сопоставляет имя поля с именем текущей ячейки грида и выполняет автоматически запрос на обновление. (Код подписки убрал из примера, он не существенен.) Сопоставление идет автоматически на событие CellEditEnd. Можкт быть конечно как то поизящней м покороче можно было сделать, но модель рабочая:
1
|
||||||
|
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
|
||
| 18.02.2020, 10:10 | ||
|
0
|
||
|
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
|
|
| 18.02.2020, 12:46 [ТС] | |
|
Igr_ok, давайте представим , что у меня один грид содержит 30 столбцов, другой 28. И я не хочу для каждого поля прописывать параметры вручную в commandbuilder. То есть не хочу описывать типа .add.Parametr() для каждого поля. А хочу просто накинуть один метод и чтобы завелась обработка сразу всех полей на гриде, в связке с правильным родным определением данных mysql. Как мне поможет commandbuilder? Никак. Если предлагаете решение , будьте добры показать ваш вариант) Пока есть один рабочий, и он мой )
Добавлено через 1 минуту Ps. Надо ещё для обработки полей типа null сделать случай, сейчас попробую включить в код.
0
|
|
|
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
|
||||||
| 18.02.2020, 13:08 | ||||||
|
Сергей1980, теория: https://dev.mysql.com/doc/dev/... uilder.htm
Для тех, кого пугает "много букв"
1
|
||||||
|
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
|
||||||||
| 18.02.2020, 13:30 [ТС] | ||||||||
|
Ваш пример в конце выдает датасет, но сама суть то не раскрыта) Это знаете как,я могу примерно такой же накидать :
0
|
||||||||
|
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
|
|||||
| 18.02.2020, 14:02 | |||||
0
|
|||||
|
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
|
||
| 18.02.2020, 14:21 [ТС] | ||
|
0
|
||
|
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
|
|
| 18.02.2020, 14:43 | |
|
Сергей1980, CommandBuilder формирует команды INSERT,UPDATE,DELETE для DataAdapter.
1
|
|
|
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
|
||||||
| 18.02.2020, 14:48 [ТС] | ||||||
|
Я попробую обязательно вариант с CommandBuilder,спасибо , почитал, но пока не разобрался с параметризацией команд.
Это чем то напоминает prepared statement из других языков. Параллельно доработал свой метод, с учетом обсчета нулевого значения поля: Кликните здесь для просмотра всего текста
Тоже достаточно просто, осталось вывести название таблиц и поле критерий выборки в отдельные переменные и можно пихать в отдельный класс)
0
|
||||||
|
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
|
|||||||
| 19.02.2020, 00:28 [ТС] | |||||||
|
Разобрался насколько смог. Собрал тестовый вариант CRUD с билдером. Все работает супер: Кликните здесь для просмотра всего текста
C датасет пример классный, можно сразу обратится к структуре и данным всех объектов на мускуле. Супер. И связи между ними прокинуть.
0
|
|||||||
|
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
|
|
| 19.02.2020, 16:00 [ТС] | |
|
Универсальным событием, определенным методом научного тыка можно использовать RowValidation.
0
|
|
| 19.02.2020, 16:00 | |
|
Помогаю со студенческими работами здесь
16
Описать класс домашняя библиотека, предусмотреть возможность работы с произвольным числом книг, поиск книги Описать класс «домашняя библиотека». Предусмотреть возможность работы с произвольным числом книг, поиска книги
Библиотека для работы с БД Библиотека для работы с БД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|