Я хотел бы написать программное обеспечение, которое отображает содержимое базы данных в приложении Forms. Чтобы упростить объяснение, я использую список покупок в качестве примера.Как отображать информацию из объединенных таблиц в DataGridView
- У меня есть несколько списков в одной таблице
tLists
- У меня есть ряд
tProductPackages
в другой таблице - список может состоять из многих productPackages и один productPackage может быть во многих списках. Это отношение m: n отражается в отдельной таблице с именем
tListProdPacks
. - Продукт Продукт содержит продукт. Продукт может иметь несколько продуктов. В каждой записи
tProductPackage
есть внешний ключ FK_ProductID, который ссылается на запись в таблицеtProducts
.
Приложение My forms должно перемещаться по всем спискам с помощью BindingNavigator
. В некоторых связанных элементах управления он должен отображать детали выбранного списка. Это работает нормально. (Только связанные элементы управления.)
Все содержимое списка (записи в tListProdPacks
для выбранного элемента tLists
) должно отображаться в DataGridView. Это также отлично работает. Также отображаются данные продукта Packages (tProductPackages
, т. Е. Один переход к следующей таблице). В этой таблице значение продукта доступно как ID (FK_ ProductID
) (внешний ключ для tProducts).
Есть ли способ показать имя продукта (только в tProducts
) в DataGridView, чей DataSource tListProdPacks
? (легко отобразить tProductPackages
участников, так как первичный ключ от tProductPackages
ссылается на него tListProdPacks
и с помощью этого идентификатора я могу показать все остальные данные от tProductPackages
, просто продолжайте использовать одно и то же значениеMember, но используйте разные значения DisplayMember для отдельных столбцов DataGridView [используя выпадающих элементов управления в DGV].) Но когда вы прыгаете на один стол дальше (т.е. при прыжке в таблицу), это больше не работает.
Я знаю, что могу просто создать пользовательский запрос (join, view), чтобы получить именно то, что я хочу, но потом я больше не могу обновлять базу данных из набора данных.
Кто-нибудь знает, как это сделать? (Я думаю, что есть простой способ, обеспечиваемый каркасом, и я просто не вижу его, верно?)
Я не уверен, смогу ли я описать то, что хотел бы достичь достаточно хорошо. Если нет, пожалуйста, помогите мне, что предоставить дополнительно.
С наилучшими пожеланиями, Том
u можете использовать Ado.net –
Но при использовании JOINs я не могу обновить базу данных, не так ли? Что, если я тоже хочу делать ОБНОВЛЕНИЯ? – TomS
для этого лучше разбить все таблицы и вставить соответствующие данные в порядок, но с использованием свойств транзакции и фиксации, чтобы, если какое-либо обновление не удалось, оно будет откатываться. вам нужно сделать некоторую логику там, например, какую таблицу обновить ist и которая последняя или вам нужен любой идентификатор из таблицы ist для обновления во второй и т. д. –