С# (WPF): средство просмотра связей с базами данных

73
5

Я хотел бы создать приложение WPF в С#, которое может визуально показать в удобном для пользователя интерфейсе отношения между таблицами из базы данных, выбранной из приложения пользователя (MS SQL Server, MS Access, Oracle, MySQL и т.д.) и позволяют редактировать отношения.


Например, в Microsoft Access 2007 можно сделать такую ​​вещь, имея как минимум 2 таблицы и щелкнув вкладку База данных, а затем Отношения. Другой пример - в Microsoft SQL Server при создании диаграммы базы данных.


Первым шагом будет создание уровня доступа к данным, позволяющего подключаться к различным типам баз данных (в зависимости от типа поставщика).


Я не знаю, есть ли какой-то зритель в .NET(или, возможно, бесплатная сторонняя библиотека), которая могла бы сделать трюк. Вы знаете его? Если нет, то каковы большие линии для выполнения этого вручную с помощью WPF?


Спасибо за любую помощь и предложения!

спросил(а) 2021-01-14T00:30:55+03:00 2 недели назад
1
Решение
113

Здесь есть большое количество пунктов "Big Ticket", но мы начнем с основных функций.


Задачи БД:
Перечисление таблиц
Для каждой таблицы - перечислить отношения.
Вышеупомянутая функциональность для каждого типа БД, с которым вы хотите иметь дело.


Задачи пользовательского интерфейса:
Разложить таблицы (простые коробки одинакового размера)
рисовать линии для каждой связи
Внедрить перетаскивание - перерисовать линии отношений при капле.


Теперь это не относится к красивым изогнутым линиям и красиво маршрутизирует эти строки
Он также не касается столбцов таблицы, поэтому все "ящики" таблицы в пользовательском интерфейсе имеют одинаковый размер, что упрощает компоновку.

Но этот уровень функциональности является хорошей целью как доказательство концепции.


Если это для клиента, в профессиональном качестве, не тратьте время на него.


Однако, если это для учебного опыта, тогда идите! Там много хороших самородков, которые можно получить от такого проекта, который вы будете использовать снова и снова в своей карьере программирования.


надеюсь, что это поможет!

ответил(а) 2021-01-14T00:30:55+03:00 2 недели назад
43

Чтение отношений внешнего ключа может быть нетривиальным. Мое приложение включает следующий комментарий:


//get the list of all foreign keys
//unfortunately GetSchema doesn't return the column definitions
//http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=741870&SiteID=1 suggests getting this
//information from the the sys.foreign_keys catalog view joined with sys.objects (for SQL 2005)
//or from the sysforeignkeys and sysobjects tables in SQL 2000).

ответил(а) 2021-01-14T00:30:55+03:00 2 недели назад
43

Возможно, вы можете взглянуть на MS Office PIA для MS Access 2007 и посмотреть, сможете ли вы найти зрителя, о котором вы говорите...

ответил(а) 2021-01-14T00:30:55+03:00 2 недели назад
42

Это не бесплатно, но для любых диаграмм WPF я всегда использовал графический продукт Mindscape WPF Flow Diagrams. Продукт отличный, и поддержка превосходна.

ответил(а) 2021-01-14T00:30:55+03:00 2 недели назад
-4

Существует такой видник, который встроен в визуальную студию, и перейдите в Инструменты- > Подключиться к базе данных и подключите его к базе данных. Затем, когда вы увидите базу данных в проводнике сервера, откройте таблицу и посмотрите на различные кнопки на панели инструментов, там, где таблица будет отображаться как маленькое окно на сером фоне. Когда вы откроете это окно, вы можете перетащить другие таблицы в серое пространство, и он покажет вам все отношения.

ответил(а) 2021-01-14T00:30:55+03:00 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема