@Artem_007

C# — PostgreSQL Как работать с GridView?

Имеется бд на постгресе, в которой несколько различных таблиц. Имеется программка на шарпе, которая в будущем должна работать с этой бд и "изменять, удалять и добавлять" данные в таблицы. Все таблицы подгружаются в DataGridView. Висит комбобокс и в нем выбирается таблица из списка.
Теперь вопрос, каким образом мне написать более-менее универсальный способ добавления, удаления и изменения данных в таблице? Удаление я еще как-то сделал коряво по выделенной строчке и значению первого столбца(id), а как быть со вставкой и изменением? В каждом таблице разное кол-во столбцов и их имена. Думал попытаться реализовать через DataAdapter.Update, но так и не понял по какому принципу там прописываются команды для нескольких измененных полей.
Т.е. в идеале, у нас, выбрав любую таблицу из списка, мы ее редактируем прямо в DataGridView, жмем кнопку "Сохранить" и вносятся все запросы в нашу БД. Реализовывывать вручную все это для каждой таблицы, какое-то сомнительное занятие, может есть какой-то способ?
Я знаю как из обычного текстбокса сформировать sql-запрос с параметрами. Но для разных таблиц будут костыли из свитчей.
Или как все это лучше реализовать?)
  • Вопрос задан
  • 2203 просмотра
Решения вопроса 1
Nipheris
@Nipheris Куратор тега C#
Вам надо определиться с рядом требований к вашему приложению, в частности - на каком уровне абстракции оно работает с БД. Если на метауровне - т.е. для вашей программы нет ничего кроме набора неких таблиц и вьюх в базе (иными словами у вас чтото вроде стандартного шелла для работы с базой) - то это одна ситуация, и тут вам бы работать с INFORMATION_SCHEMA (чтобы без свитчей) и действительно собирать SQL-запросы самому. Если же у вас стандартные бизнес-задачи (создать запись о клиенте, заказе, ..., сохранить, отредактировать данные), и вы конкретно знаете, что у вас за таблицы и что там хранится, то почитайте про актуальные подходы к работе с данными в базах с использованием ORM, в случае дотнета - Entity Framework и NHibernate.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
hePPer
@hePPer
пробуйте реализовать репозиторий и работать с ним, а не напрямую с таблицами из бд.

тут есть пример
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы