|
0 / 0 / 0
Регистрация: 06.01.2022
Сообщений: 7
|
|
Нужен совет по созданию апликейшена (CURD) редактирующий базу данных (Postgresql)06.01.2022, 16:40. Показов 2887. Ответов 19
Добрый день,
У меня тут проблема одна, нужно выполнить задачу и срок увы короткий, на тему в которой я не очень силен (работа с базой данных). Логика проекта такая: Создать базу данных и table со столбцами (номер, имя, дата, пол, место для фалага где может быть значение 0 или 1) в Postgresql. Затем, используя С# создать апликейшен, который приконектится к этой базе данных и отобразит таблицу с такими же столбцами (а так же будет изменять и сам table в Postgresql). Далее необходимо в этой таблице добавить возможность (4 кнопками), 1 - добавить новую строку, 2 - редактировать любую строку в самой таблицы и сохранить результат, 3- изменить флаг в последнем столбце с 0 на 1 чтобы скрыть строку (строки с единицой не должны отображаться, но не удаляться), 4 - отобразить таблицу с результатом после изменений. Я нашел много туториалов и успешно прошел как сделать эту задачу используя отдельные text box, где можно вписывать или редактировать данные для строки. К сожалению такой вариант не годится, нужно чтобы изменение были в одной таблице где она и отображается (но можно как альтернатива вместо второй кнопки добавить в каждую строку кнопку эдит и редактировать только строку). Увы туториалов близких к моей задачи всего несколько и не совсем то. Буду очень благодарен, если сможете помочь со способом как возможно это сделать в одной таблице.
0
|
|
| 06.01.2022, 16:40 | |
|
Ответы с готовыми решениями:
19
Нужен совет по созданию своего типа данных
Нужен совет.Как реализовать базу клиентов компании и синхронизацию данных программно |
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 06.01.2022, 17:16 | ||
|
2
|
||
|
|
||||||||
| 06.01.2022, 20:15 | ||||||||
|
Добавлено через 2 часа 31 минуту P.S. Задача очень сильно напоминает тестовое задание на позицию в стеке Java, C#, MSSQL, PostgreSQL на стажера/джуна в одну из мелко-средних IT-компашек. Если это так, то спешу вас разочаровать: на первом же тех. собеседовании по вашему решению задачи вас обязательно спросят по сути решения. Типа, а почему вот тут сделали так-то, а вот тут так-то? Очень быстро станет ясно, что делали не вы, да и вообще мало что понимаете в написанном. И все.
0
|
||||||||
|
0 / 0 / 0
Регистрация: 06.01.2022
Сообщений: 7
|
|
| 07.01.2022, 04:45 [ТС] | |
|
Спасибо за ответ. Проблема, что с лихвой тутлриалы, что я осилил вводят данные или редактируют путем отдельной формы, хотелось бы понять как изменить и вместо формы сделать в самой таблице отображение и изменения путем кнопок (а так же как изменить дэлит на флаг и скрывать строки в столбце которых этот флаг был отмечен).
Задание не для собеседования, я занимался вообще другим проектом на Питоне, мне резко дали тестовое на датабазу (но устно опрашивать сто процентов не будет, нужно просто сделать проект). По туториалу, что я делал я понял логику работы, но как изменить формат в нужный догадаться не могу и как изменить функцию удаление на скрывание. Я делал на веб форме. Туториалов увы с нужным форматом не нашел, кроме нескольких где формат все равно отличается. Увы нужно делать все на С# в котором как вы заметили я очень так себе.
0
|
|
|
|
||||||||||||
| 07.01.2022, 13:08 | ||||||||||||
|
Bjhm,
ну хотя бы главное окно с датагридом и строкой подключения к БД уже готово у вас? Скрытие строк из результата выборки можно сделать примерно так:
где столбец Visible в БД является bool-столбцом. Установить туда значение true/false можно из формы с помощью кнопки, например:
Другое дело, как потом включить отображение скрытых столбцов из формы; мы то их не видим! Но это детали... Вся ваша таблица будет отображаться в одном гриде, в нем же редактироваться. Способов редактирования и записи изменений в БД - миллион! Тут уже что понравится. Я вот, например, с PostgreSQL не работал ни разу. Понятно что sql везде плюс/минус одинаков, но в этой БД есть какие-то свои нюансы...
0
|
||||||||||||
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 07.01.2022, 15:16 | |
|
CRUD в общем случае имеет две реализации: редактирование в гриде и модальными формами. Что нужно Вам ?
0
|
|
|
|
|||||||
| 07.01.2022, 17:31 | |||||||
|
Bjhm, Поставил я себе postgresql 14.1, смотрю эта БД весьма популярна в разработках. Видимо, рано или поздно можно с ней столкнуться, внезапно. По сути вашей задачи сделал пока следующее (при помощи тузлы pgAdmin):
Для подключения к БД из VS нужно пакетик нугет Npgsql скачивать. Сейчас времени нет, попробую позже.
0
|
|||||||
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 07.01.2022, 17:35 | |
|
0
|
|
|
|
||||||
| 07.01.2022, 19:38 | ||||||
Сообщение было отмечено Bjhm как решение
Решение
Bjhm, немного продвинулся:
Сейчас Npgsql установлен, все подключается, при запуске приложения происходит выборка всей таблицы users в грид: Проект прикладываю, отталкивайтесь от него. Естественно, измените строку подключения на свои параметры (логин, пароль, база).
Для связи данных с гридом я использую BindingList и соответственно модель данных в виде класса DataGridModel : INotifyPropertyChanged. DataTable не люблю.Вопросы задавайте по ходу вашего продвижения в теме...
1
|
||||||
|
0 / 0 / 0
Регистрация: 06.01.2022
Сообщений: 7
|
|
| 08.01.2022, 12:13 [ТС] | |
|
Большое спасибо, извиняюсь, что долго не отвечал, до этапа кнопок я тоже продвинулся, но все равно большое спасибо за референс, я как раз накосячил с последнем столбцом, чек боксы имееют больше смысла нежели ввод цифр (путем выбора дроп окна) и путем ифа скрывать строки (что как я уже осознал была у меня глупой идеей). Сейчас на этапе кнопки балк редактирования пытаюсь, что-то сделать (редактировать всю таблицу и сохранить). Буду держать в курсе прогресса.
0
|
|
|
0 / 0 / 0
Регистрация: 06.01.2022
Сообщений: 7
|
|
| 08.01.2022, 20:10 [ТС] | |
|
Пока есть такой код для добавление строки (1ая кнопка) и кнопка сейв (5ая) сохраняет изменение в датабазу, но еще как 2ую кнопку балк коррект (режим корректа всей таблицы при нажатие кнопки эдит и сохранение изменений в датабазу кнопкой сейв) не понял лучше сделать, буду благодарен совету.
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
||
| 08.01.2022, 22:34 | ||
|
Конечно, это ни в коем разе не bulk, но ТС, очевидно, думает иначе
0
|
||
|
0 / 0 / 0
Регистрация: 06.01.2022
Сообщений: 7
|
|
| 08.01.2022, 22:34 [ТС] | |
|
Про тэги спасибо, буду знать.
Балк это когда при нажатие на кнопку редактировать редактируется все отображаемые строки таблицы, а затем нажатием клавиши пятой сэйв сохраняются все изменения.в датабазу.
0
|
|
|
|
|||
| 08.01.2022, 22:41 | |||
|
Добавлено через 3 минуты Я бы этот механизм представлял бы примерно так: В гриде правим нужные ячейки, они автоматом обновляются в датасете, а уж потом, некой кнопкой "Подтвердить изменения" формируется запрос к БД на Update измененных полей. В идеале, еще надобно бы проверять значения на валидность, чтоб, к примеру, в столбец Дата не пытаться записать что-то иное..
0
|
|||
|
0 / 0 / 0
Регистрация: 06.01.2022
Сообщений: 7
|
|
| 08.01.2022, 22:42 [ТС] | |
|
Ну все созданные строки в датабазе нужны в Эдит моде и сохранение изменения. Так как по одной увы нельзя и использовать какие либо формы где они будут по клику выводится тоже запретили.
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 08.01.2022, 23:32 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 06.01.2022
Сообщений: 7
|
|
| 27.01.2022, 11:46 [ТС] | |
|
Проект как тестовое сделал успешно уже давно, извиняюсь, что не обновлял тему, могу если кому интересно скинуть файл с кодом. Спасибо за помощь.
0
|
|
| 27.01.2022, 11:46 | |
|
Помогаю со студенческими работами здесь
20
Нужен совет по созданию высокопроизводительной БД Нужен совет по созданию приложения. Ot Нужен совет по созданию программы
Нужен совет по созданию БД в Delphi Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит предопределенное значение перечислений.
Процедура. . .
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|