C# (WPF): просмотрщик отношений с базами данных
Я хотел бы создать приложение на языке WPF на C#, которое может визуально отображать в удобной для пользователя форме отношения между таблицами из базы данных, выбранной пользователем приложения (MS SQL Server, MS Access, Oracle, MySQL и т. Д.) И разрешить редактирование отношений.
Например, в Microsoft Access 2007 это можно сделать, имея как минимум 2 таблицы и щелкнув вкладку " Инструменты базы данных ", а затем " Отношения". Другой пример - Microsoft SQL Server при создании схемы базы данных.
Первым шагом будет создание уровня доступа к данным, чтобы разрешить подключение к различным типам баз данных (в зависимости от типа поставщика).
Я не знаю, есть ли уже какая-то программа для просмотра в.NET (или, может быть, бесплатная сторонняя библиотека), которая могла бы добиться цели. Вы знаете один? Если нет, то каковы большие возможности сделать это вручную с WPF?
Спасибо за любую помощь и предложения!
5 ответов
Возможно, вы могли бы взглянуть на PIA MS Office для MS Access 2007 и посмотреть, если вы можете найти зрителя, о котором вы говорите...
Это не бесплатно, но для любого построения диаграмм WPF я бы всегда использовал продукт диаграмм Mindscape WPF Flow Diagrams. Продукт отличный, а поддержка превосходная.
Здесь довольно много предметов "Большого билета", но мы начнем с основной функциональности.
Задачи БД: перечисление таблиц Для каждой таблицы перечислите отношения. Абстрактная функциональность выше для каждого типа БД, с которым вы хотите иметь дело.
Задачи пользовательского интерфейса: раскладывайте таблицы (простые блоки одинакового размера), рисуйте линии для каждого отношения. Внедрите Drag & Drop - перерисовывайте линии отношения по капле.
Теперь это не относится к хорошим изогнутым линиям и к правильной маршрутизации этих линий. Кроме того, это не касается столбцов таблицы, поэтому все "прямоугольники" таблицы в пользовательском интерфейсе имеют одинаковый размер, что упрощает компоновку.
Но этот уровень функциональности является хорошей целью в качестве доказательства концепции.
Если это для клиента, в профессиональном качестве, не тратьте свое время на это.
Однако, если это для учебного опыта, то пойти на это! В таком проекте можно получить много интересных самородков, которые вы будете использовать снова и снова в своей карьере программиста.
надеюсь это поможет!
Чтение отношений внешнего ключа может быть нетривиальным. Моя заявка содержит следующий комментарий:
//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).
Существует средство просмотра такого рода, встроенное в Visual Studio, перейдите в Инструменты-> Подключиться к базе данных и подключите все это к базе данных. Затем, когда вы видите базу данных в обозревателе серверов, откройте таблицу и посмотрите на различные кнопки на панели инструментов, есть такая, которая выведет таблицу в виде небольшого окна на сером фоне. Открыв это окно, вы можете перетащить другие таблицы в серую область, и они покажут вам все их связи.