Создать диаграмму базы данных visual studio
Традиционно моделирование программного обеспечения осуществляется отдельно от кодирования. Как правило, это происходит на этапе проектирования, который заканчивается до начала кодирования. В большей части случаев диаграммы моделирования, построенные на этапе проектирования, быстро устаревают в ходе разработки программного обеспечения и теряют свое значение при неизбежном изменении проекта.
Утилита Class Designer системы Visual Studio позволяет внедрить моделирование в интегрированную среду разработки в виде действий, которые можно выполнить в любое время на всем протяжении разработки проекта. Диаграммы классов динамически конструируются по исходному коду, т.е. они никогда не устаревают. Любые изменения, внесенные в исходном коде, немедленно отражаются на диаграмме классов, а любое изменение диаграммы классов отражается в коде.
Создание диаграммы классов
Процесс проектирования приложения обычно подразумевает как минимум наличие схемы классов, которые будут созданы, и описание их взаимодействия. Среда Visual Studio 2013 имеет область проектирования Class Designer, в которой можно формировать диаграмму классов. Затем в классы можно добавлять поля, свойства и методы, а также устанавливать взаимоотношения между ними.
Несмотря на то что этот объект называется диаграммой классов, он поддерживает классы, структуры, перечисления, интерфейсы, абстрактные классы и делегаты. Существует несколько способов, с помощью которых разработчик может добавлять диаграмму классов в свой проект. Например, он может открыть диалоговое окно Add New Item, чтобы создать новую пустую диаграмму классов в проекте:
Новую диаграмму классов можно добавить в проект, щелкнув на кнопке View Class Diagram инструментальной панели в окне Solution Explorer или щелкнув правой кнопкой мыши на проекте или классе, а затем выбрав команду View Class Diagram в контекстном меню. Если при этом проект был выделен, то система Visual Studio автоматически добавит все типы, определенные в проекте, в начальную диаграмму классов. Хотя в некоторых случаях это может оказаться удобным, для проекта, содержащего большое количество классов, процесс создания и уточнения такой диаграммы может оказаться слишком долгим.
В отличие от некоторых программных средств, требующих, чтобы все типы, существующие в проекте, принадлежали одной и той же диаграмме классов, в системе Visual Studio диаграмма классов может содержать сколько угодно пользовательских классов. Это позволяет добавлять в одно решение несколько диаграмм классов.
Область действия утилиты Class Designer ограничена одним проектом. Например, нельзя добавлять в диаграмму классов типы, определенные в разных проектах, даже если они являются частями одного и того же решения.
Надстройку Class Designer можно разделить на четыре компонента: область проектирования (design surface), инструментальная панель Toolbox, окно Class Details, сетка свойств. Изменения диаграммы классов сохраняются в файле с расширением *.cd, который в сочетании с исходными файлами используется для генерации схемы, демонстрируемой в области проектирования Class Designer.
Область проектирования диаграммы классов
Область проектирования надстройки Class Designer позволяет разработчику взаимодействовать с типами, используя перетаскивание компонентов. Разработчик может добавлять в область проектирования существующие типы, перетаскивая их из любого представления классов или окна Solution Explorer. Если файл, связанный с окном Solution Explorer, содержит несколько типов, то все они добавляются в область проектирования.
На рисунке ниже показана простая диаграмма классов, содержащая два класса: Customer и Order, а также перечисление OrderStatus. Каждый класс содержит поля, свойства, методы и события. Между классами существует ассоциация, поскольку класс Customer содержит свойство Orders, представляющее собой список объектов типа Order, а класс Order реализует интерфейс IDataErrorInfo. Вся эта информация содержится на диаграмме классов.
Каждый класс на диаграмме классов изображается как отдельная сущность, которую можно перетаскивать по области проектирования и при необходимости изменять размеры. Класс состоит из полей, свойств, методов и событий. На рисунке выше эти компоненты сгруппированы в разделы. Разработчик может изменять шаблон для диаграмм классов, например, перечислять компоненты в алфавитном порядке или группировать их по уровню доступа.
Надстройка Class Designer часто используется для просмотра многочисленных классов, чтобы было понятно, как они связаны друг с другом. В таком случае удобно скрывать компоненты классов, чтобы упростить диаграмму. Для того чтобы скрыть все компоненты одновременно, можно использовать переключатель, расположенный в правом верхнем углу представления класса в области проектирования. Если необходимо скрыть не все, а лишь некоторые компоненты, то их можно скрывать по отдельности или по разделам, щелкая правой кнопкой мыши на соответствующем элементе и выбирая в контекстном меню команду Hide.
Инструментальная панель Toolbox
Для того чтобы облегчить добавление элементов на диаграмму классов, в инструментальной панели Toolbox есть корешок закладки Class Designer. Чтобы создать элемент, следует перетащить его из инструментальной панели Toolbox в область проектирования и дважды щелкнуть на нем. На рисунке ниже показана инструментальная панель Toolbox с видимой закладкой Class Designer. Элементы на панели Toolbox можно разделить на сущности (entities) или соединители (connectors). Обратите внимание на то, что элемент Comment можно добавить на закладку Class Designer, но он не появляется ни в одной части кода, а просто добавляется в документацию о диаграмме классов.
Сущности (entities)
Для того чтобы удалить сущности из диаграммы, надо щелкнуть на них правой кнопкой мыши и выбрать в контекстном меню команду Remove From Diagram. В этом случае они не удаляются из исходного кода, а исчезают из диаграммы классов. Если разработчик все же хочет удалить связанный с сущностью исходный код, следует выбрать команду Delete Code.
Для того чтобы увидеть код, связанный с сущностью, следует дважды щелкнуть на сущности или выбрать команду View Code в контекстном меню, которое открывается после щелчка правой кнопкой мыши. Сущности, включенные в инструментальную панель Toolbox, описаны ниже.
Class (класс)
Поля, свойства, методы, события и константы можно добавлять в класс с помощью контекстного меню, открывающегося после щелчка правой кнопкой мыши или с помощью окна Class Details. Несмотря на то что класс может поддерживать вложенные типы, они не могут добавляться в область проектирования. Классы могут также реализовывать интерфейсы. Например, на рисунке выше класс Order реализует интерфейс IDataErrorInfo.
Enum (перечисление)
Может содержать только список членов с присвоенными им значениями. Каждый метод имеет резюме и комментарии, но они появляются только в виде XML-комментария, расположенного напротив метода.
Interface (интерфейс)
Интерфейсы определяют свойства, методы и события, которые должен реализовать класс. Интерфейсы могут также содержать вложенные типы, но напомним, что добавление вложенных типов не поддерживается утилитой Class Designer.
Abstract Class (абстрактный класс)
Struct (структура)
Это единственная сущность, кроме перечислений, которая появляется в области проектирования в прямоугольнике. Аналогично классу, структура имеет поля, свойства, методы, события и константы. Кроме того, она тоже может содержать вложенные типы. Тем не менее в отличие от класса структура не имеет деструктора.
Delegate (делегат)
Несмотря на то что делегат появляется на диаграмме классов как сущность, он не может содержать вложенные типы. Он может содержать только параметры, определяющие его сигнатуру.
Соединители (connectors)
Между сущностями могут быть установлены отношения двух типов. Они иллюстрируются на диаграмме классов с помощью соединителей, описанных ниже:
Inheritance (Наследование)
Соединитель Inheritance используется для того, чтобы показать отношение между классами, наследующими свойства друг друга.
Association (Ассоциация)
Если класс содержит ссылку на другой класс, то между ними существует ассоциация. Она демонстрируется с помощью соединителя Association. Если отношение основано на коллекции, - например, на списке объектов типа Order, - его можно представить с помощью ассоциации коллекции (collection association). Ассоциация коллекции Orders показана на рисунке выше в виде соединителя, связывающего классы Customer и Order.
Ассоциацию классов (class association) можно представить либо в виде поля или свойства класса, либо в виде ассоциативной связи между классами. Для этого можно использовать контекстное меню, открывающееся после щелчка правой кнопкой мыши на поле, свойстве или линии связи между классами.
Для того чтобы показать свойство как ассоциацию коллекции, необходимо щелкнуть правой кнопкой мыши на классе и выбрать команду Show as Collection Association. В результате свойство будет скрыто в классе и показано в виде соединителя с ассоциированным классом на диаграмме.
Конструктор баз данных — это визуальное средство, позволяющее конструировать и визуализировать базу данных, с которой установлено соединение. Конструктор баз данных используется для создания, редактирования и удаления таблиц, столбцов, ключей, индексов, связей и ограничений. Для визуализации базы данных можно создать одну или несколько диаграмм, иллюстрирующих некоторые или все имеющиеся в ней таблицы, столбцы, ключи и связи.
Для любой базы данных можно создать любое необходимое количество диаграмм; каждая из таблиц базы данных может использоваться в любом количестве диаграмм. Таким образом, для визуализации различных частей базы данных или для акцентирования различных аспектов ее конструирования можно создавать различные диаграммы. Например, можно создать большую диаграмму, в которой будут отображаться все таблицы и столбцы, а также меньшую диаграмму, в которой будут отображаться все таблицы, но не будет столбцов.
Каждая созданная диаграмма базы данных хранится в соответствующей базе данных.
Таблицы и столбцы в диаграмме базы данных
Внутри диаграммы базы данных каждая таблица имеет три отдельных элемента: заголовка окна, список выбора строк и набор столбцов свойств.
Строка заголовка В строке заголовка отображается имя таблицы.
Если таблица была изменена, но еще не сохранена, то после имени таблицы появляется звездочка (*), показывающая наличие несохраненных изменений. Дополнительные сведения о сохранении измененных таблиц и диаграмм см. в разделе Работа с диаграммами баз данных (визуальные инструменты для баз данных)
Область выделения строки . Чтобы выбрать столбец базы данных в таблице, щелкните область выделения строки. Если столбец является первичным ключом таблицы, то в этом списке отображается символ ключа. Дополнительные сведения о первичных ключах см. в статье Работа с ключами.
Столбцы свойств . Набор столбцов свойств виден не во всех представлениях таблицы. Таблицу можно просмотреть в любом из пяти различных представлений, позволяющих подобрать подходящий размер и размещение элементов диаграммы.
Связи в диаграмме базы данных
Внутри диаграммы базы данных у каждой связи есть три отдельных элемента: конечные точки, стиль линии и связанные таблицы.
Конечные точки . Конечные точки линии показывают вид связи: "один к одному" или "один ко многим". Если на одной конечной точке связи находится ключ, а на другой — цифра восемь, то это связь «один ко многим». Если у связи по одному ключу на каждой конечной точке, то это связь «один к одному».
Стиль линии . Разновидность линии (не ее конечные точки) показывает, проверяет ли СУБД ссылочную целостность для связи при добавлении новых данных в таблицу, связанную с помощью внешнего ключа. Если связь нарисована в виде сплошной линии, это значит, что СУБД проверяет ссылочную целостность для связи при добавлении или изменении строк в таблице, связанной с помощью внешнего ключа. Если линия пунктирная, это значит, что СУБД не проверяет ссылочную целостность для связи при добавлении или изменении строк в таблице, связанной с помощью внешнего ключа.
Связанные таблицы . Линия связи показывает, что две таблицы связаны с помощью внешнего ключа. Для связи «один ко многим» таблица, связанная с помощью внешнего ключа, — это таблица около цифры 8 на линии. Если обе конечные точки линии присоединены к одной таблице, это означает возвратную связь. Дополнительные сведения см. в разделе Извлечение рефлексивных связей (визуальные инструменты для баз данных).
Это пошаговое руководство показывает, как создавать и изменять диаграмму базы данных и производить изменения в базе данных с помощью компонента диаграмм базы данных. Рассматривается добавление таблиц в диаграммы, создание связей между таблицами, создание ограничений и индексов столбцов и изменение уровня сведений, видимых для каждой таблицы.
Предварительные требования
Для выполнения данного пошагового руководства требуется:
Доступ к SQL Server с образцом базы данных AdventureWorks2012
Учетная запись с правами владельца базы данных dbo
Создание диаграммы
Для создания новой диаграммы базы данных
В меню Вид выберите Обозреватель объектов.
Откройте узел «Базы данных», а затем узел AdventureWorks2012 .
Щелкните правой кнопкой узел "Диаграммы баз данных" и выберите Создать диаграмму базы данных.
Отображается диалоговое окно Добавление таблицы .
Выберите таблицы AddressType (Person) и Address (Person) и нажмите кнопку Добавить.
В диаграмму будут добавлены две таблицы.
Закройте диалоговое окно Добавление таблицы .
Просмотр данных другого столбца
Щелкните правой кнопкой мыши таблицу Address . В контекстном меню выберите Вид таблицы и выберите Стандартный.
Сетка таблицы отображает три столбца: Имя столбца, Тип данных и Разрешить значения NULL.
Щелкните правой кнопкой мыши таблицу Address , выберите Вид таблицы и Ключи.
Сетка таблицы отображает один столбец, содержащий имена столбцов таблицы. Появятся только столбцы, которые участвуют в индексах.
Создание новых таблиц
Создание таблиц в конструкторе диаграмм
Щелкните правой кнопкой мыши конструктор диаграмм вне существующих таблиц и выберите Создать таблицу.
В диалоговом окне Выбор имени нажмите кнопку ОК , чтобы принять имя Table1, используемое по умолчанию.
Появится новая сетка таблицы с тремя столбцами: Имя столбца, Тип данных и Разрешить значения NULL.
Добавьте следующие данные в таблицу Table1:
Щелкните правой кнопкой мыши T1col1 и выберите команду Задать первичный ключ.
Рядом с именем столбца появится значок ключа.
В меню Файл выберите пункт Сохранить Diagram1.
В диалоговом окне Выбор имени нажмите кнопку ОК , чтобы принять имя Diagram1, используемое по умолчанию.
Изменение структуры таблицы
В конструкторе диаграмм можно добавить проверочные ограничения и создать связи между таблицами.
Создание проверочных ограничений
В Table1 щелкните правой кнопкой мыши строку T1col3 и выберите Проверочные ограничения.
Будет открыто диалоговое окно Проверочные ограничения .
В списке Выбранные проверочные ограничения появится новое проверочное ограничение с именем по умолчанию CK_Table1 .
Выберите строку Выражение в сетке и нажмите кнопку с многоточием.
Будет открыто диалоговое окно Выражение проверочного ограничения.
Введите T1col3 > 5 и нажмите кнопку ОК.
Table1 содержит теперь ограничение, согласно которому все значения столбца T1col3 должны быть больше 5.
Щелкните Закрыть.
Создание связей между таблицами
В конструкторе диаграмм создайте новую таблицу Table2 со следующими столбцами.
Имя столбца | Тип данных | Разрешить значения NULL |
---|---|---|
T2col1 | int | не включен |
T2col2 | varchar(50) | checked |
T2col3 | xml | checked |
Столбцы на стороне первичного ключа связи внешнего ключа должны быть включены в первичный ключ или в ограничение уникальности.
Перетащите T2col1 к T1col1 .
Отображаются два диалоговых окна: Связь по внешнему ключу на заднем плане и Таблицы и столбцы на переднем плане.
Снова нажмите кнопку OK.
Создание индексов
Индексы можно создавать на большинстве типов данных, включая XML.
Создание стандартного индекса
Щелкните правой кнопкой мыши Table1 и выберите Индексы/Ключи.
Открывается диалоговое окно Индексы/Ключи .
Новый индекс появится в списке Выбранный первичный (уникальный) ключ или индекс с именем по умолчанию, подобным IX_Table1 .
Выберите строку Столбцы и нажмите кнопку с многоточием.
Отображается диалоговое окно Столбцы индекса .
Щелкните стрелку раскрывающегося списка под полем Имя столбца и выберите T1col2 .
В индекс можно добавить дополнительные столбцы, выбрав ячейку под T1col2 и выбрав другое имя столбца.
Создание XML-индекса
Щелкните правой кнопкой мыши T2col1 и выберите команду Задать первичный ключ.
Чтобы добавить XML-индекс, необходимо, чтобы другой столбец в таблице был установлен в качестве кластеризованного первичного ключа таблицы.
Щелкните правой кнопкой мыши строку T2col3 в Table2 и выберите пункт XML-индексы.
Отображается диалоговое окно XML-индексы .
В список Выбранный XML-индекс будет добавлен XML-индекс со значениями по умолчанию.
Щелкните Закрыть.
XML-индексы создаются для каждого столбца. Первый индекс XML-столбца является первичным, все дополнительные XML-индексы являются вторичными.
Сохранение диаграммы
Все изменения в диаграмме не будут отправлены в базу данных до тех пор, пока диаграмма не будет сохранена. В случае возникновения проблем и конфликтов появляется диалоговое окно, содержащее дополнительные сведения.
Сохранение диаграммы базы данных
В меню Файл выберите команду Сохранить Diagram1.
Отображается диалоговое окно Сохранить . Если установлен флажок Предупреждать о затронутых таблицах , перечисляются сведения о новых и измененных таблицах.
В случае ошибок открывается диалоговое окно Уведомления после сохранения , содержащее ошибки и их причины. Исправьте ошибки и сохраните диаграмму снова.
Next Steps
Это базовая диаграмма, содержащая только две существующие и две новые таблицы, но она иллюстрирует возможность создания схемы существующей базы данных или визуального создания новой схемы. Для лучшего изучения можно предложить следующее:
Приносим извинения. Запрошенное содержимое было удалено. Вы будете автоматически перенаправлены через 1 секунду.
Лучший отвечающий
Вопрос
Извините за идиотский вопрос, не задал если бы не одно но,
Где находится диаграмма баз данных?
Visual Studio 2013 Ultimate Язык Русский
В msdn говорится лишь
To create a new database diagram
In Server Explorer, right-click the Database Diagrams folder or any diagram in that folder.
Choose Add New Diagram on the shortcut menu.
The Add Table dialog box appears.
Select the required tables in the Tables list and click Add .
The tables are displayed graphically in the new database diagram.
You can continue to add or delete tables, modify the existing tables, and alter table relationships until the new database diagram is complete.
В A.Troelson-e говорится
Visually Creating Table Relationships
The final task is to establish parent/child table relationships between the Customers, Orders, and
Inventory tables. It is easy to do this using Visual Studio because you can elect to insert a new database
diagram at design time. Using the Server Explorer, right-click the Database Diagrams node of the
AutoLot database and select the Add New Diagram menu option. This brings up a dialog box that lets
you pick which tables to add to the diagram. Be sure to select each of the tables from the AutoLot
database.
Но вот здесь, он есть
Вот здесь есть кое что, но как его использовать при построении диаграммы зависимостей при создании базы данных, или как создать отношения в VS 2013.
Многообразие функциональных средств и параметров этого элемента управления столь велико, что их просто невозможно осветить в одной статье. В последующих разделах будет показано, как создавать некоторые из доступных типов диаграмм, привязывать диаграммы к различным источникам данных и выполнять ряд полезных функций создания диаграмм. С более полным набором примеров можно ознакомиться в библиотеке образцов, которая содержит свыше 200 примеров различных элементов управления Chart.
Создание базовой диаграммы
Диаграмму можно добавить, перетаскивая элемент управления Chart из панели инструментов (он находится в группе Data (Данные)) на поверхность визуального конструктора или помещая дескриптор в код разметки. Объявление для этого примера диаграммы выглядит так:
Фон диаграммы - это пространство, которое окружает область диаграммы. В качестве фона диаграммы была выбрана градиентная заливка с диагональным переходом от серого цвета (Gray) до белого дыма (WhiteSmoke), что было указано с помощью свойств BackColor, BackSecondaryColor и BackGradientStyle. При визуализации диаграммы фон создается с применением выбранной цветовой схемы.
После этого в примере выше мы задаем стиль рамки. Свойство BorderlineDashStyle управляет отображением края рамки. Значение Solid из перечисления ChartDashStyle обеспечивает рисование вокруг края диаграммы линии толщиной в один пиксель цветом, заданным в свойстве BorderlineColor. в качестве которого был установлен цвет Gray. Свойство BorderSkin поддерживает множество опций, но в примере была установлена только опция SkinStyle в Emboss, что создает трехмерный эффект приподнятой рамки с тенью.
Следующий шаг - выбор цвета фона для области диаграммы и определение заголовка. Обратите внимание, что ссылка на область диаграммы выполняется по индексному значению. Это связано с тем, что диаграмма может иметь более одной области, в которой могут графически представляться данные. Решение этой задачи рассматривается далее в статье. Диаграмма имеет только одну область, и для нее выбран цвет Wheat (пшеничный).
Диаграмма может иметь более одного заголовка, поэтому новый заголовок понадобится добавить в коллекцию Titles с помощью метода Add(), а затем сослаться на нужный заголовок по индексу для его форматирования. Форматирование сводится к установке шрифта и размера. Диаграмма с выполненными на данный момент настройками показана на рисунке ниже:
Существует множество различных способов форматирования диаграммы, и выбор подходящего набора опций может требовать некоторого времени. Мы начали с задания внешнего вида диаграммы, поскольку по странной иронии процесс добавления данных проще подбора подходящей цветовой схемы. Элемент управления Chart настолько гибкий и обладает таким многообразием опций, что бремя выбора само по себе становится достаточно серьезным препятствием.
Как только основные настройки представления данных определены, можно заняться самими данными. Наборы данных представлены с использованием класса Series, и каждый создаваемый класс Series должен быть добавлен в коллекцию Chart.Series с помощью метода Add(). Обычно создание и добавление класса Series осуществляется в одном шаге, как показано в следующем фрагменте кода:
В этом коде создается новая серия ColumnSeries и за счет установки свойства ChartType в SeriesChartType.Column указывается, что данные этой последовательности должны быть представлены в виде столбчатой диаграммы. Свойство SeriesChartType принимает 35 различных значений, каждое из которых соответствует отдельной разновидности диаграммы. Если значение свойства ChartType не указано, по умолчанию для него выбирается Column (столбчатая диаграмма).
Для наборов данных можно сконфигурировать ряд свойств. Ниже приведен код, который используется для создания второй коллекции Series и содержит некоторые изменения:
Для этой диаграммы в качестве типа был выбран Spline (график в виде плавной линии). Значение BorderWidth управляет толщиной линейного графика, а установка значения для свойства ShadowOffset создает эффект наличия трехмерной тени под вычерчиваемой линией. Свойство Color определяет цвет, используемый для рисования графика. Для этого примера был выбран бросающийся в глаза оттенок PaleVioletRed.
Последний шаг состоит в добавлении данных в набор. Существует множество различных способов связывания данных с диаграммой. В этом примере применяется простейший из них - перечисление статических значений:
Каждая коллекция Series содержит коллекцию Points. Мы использовали метод DataBindY(), реализующий интерфейс IEnumerable, который позволяет для указания данных применять массив целочисленных значений. Индекс данных используется в качестве X-координаты для каждого значения Y в массиве. При загрузке страницы, содержащей элемент управления Chart, результат выглядит, как показано на первом рисунке в статье.
Конфигурирование элемента управления Chart можно полностью выполнить также с помощью разметки. Определение рассмотренной диаграммы в этой форме имеет следующий вид:
Вот и все. Если теперь взглянуть на веб-страницу, результат будет выглядеть, как показано на первом рисунке в статье.
Мы не станем подробно останавливаться на всех доступных опциях представления диаграмм, но одна из обычно встречающихся задач - генерация трехмерных диаграмм. Чтобы преобразовать нашу простую диаграмму в трехмерную, добавим следующую строку кода в метод Page_Load:
Активизация трехмерного представления производится на уровне области диаграммы (ChartArea). Если диаграмма содержит несколько областей, двухмерные и трехмерные графики можно сочетать. Элементарная диаграмма в трехмерном представлении показана на рисунке ниже. А вот изменение, которое должно быть внесено в код разметки:
Заполнение диаграммы данными
Кроме статических данных, которые использовались в предыдущем примере, элемент управления Chart может быть заполнен данными из множества различных источников. В настоящем разделе мы рассмотрим наиболее часто используемые источники данных.
Привязка к таблице базы данных
В этом примере для демонстрации привязки диаграммы к таблице базы данных используется таблица Products тестовой базы данных Northwind. Процесс начинается с форматирования элемента управления Chart, во многом подобно тому, как это делалось в предыдущем примере.
Затем нужно выполнить привязку с использованием метода DataBindTable(), который принимает ранее созданный SqlDataReader в качестве аргумента. Как уже упоминалось ранее, привязка к таблице автоматически создает по одной серии данных для каждого числового столбца данных. В данном случае запрашиваются столбцы ProductName и UnitsInStock. Элемент управления Chart проигнорирует текстовый столбец ProductName и создаст новый экземпляр Series для столбца UnitsInStock. Форматирование объекта Series невозможно до тех пор, пока он не будет создан, поэтому свойство ChartType устанавливается после того, как таблица привязана к элементу управления. И, наконец, объекты SqlDataReader и SqlCommand закрываются.
Диаграмма, созданная этим кодом, показана на рисунке ниже:
Проблема с этой диаграммой состоит в том, что столбец ProductName был проигнорирован. Во время процесса привязки элемент управления Chart работал исходя из того, что все SQL-данные должны были интерпретироваться как значения по оси Y, и отбрасывал все, что не могло использоваться подобным образом.
Если один из столбцов должен служить в качестве значений по оси X, об этом нужно явно сообщить элементу управления Chart, выполняя привязку данных с помощью метода Points.DataBindXY() класса Series. Чтобы адаптировать предыдущий пример, закомментируйте три строки начиная с Chart1.Series.Clear() и добавьте две новых строки в файл отделенного кода:
Метод DataBindXY() позволяет предоставлять источник данных и имена столбцов, которые должны применяться для осей X и Y. В рассматриваемом примере источником данных для обеих осей является SqlDataReader, а именами столбцов - ProductName и UnitsInStock. Обратите внимание, что в этот раз коллекция Series не очищается. Метод DataBindXY() применяется к уже существующей коллекции Series (а не создает новую), и в примере была использована та, которая создается по умолчанию. Открыв измененную страницу, можно увидеть результат, показанный на рисунке ниже:
Привязка к объектному источнику данных
Один из наиболее гибких механизмов заполнения диаграммы предусматривает использование ObjectDataSource, когда определяется объект, который может получать данные, а в качестве моста между логикой извлечения данных в коде и элементом управления Chart служит ObjectDataSource. Класс извлечения должен быть создан в папке App_Code. В следующем примере возвращаются простые статические данные:
В этом примере определен класс DataItem, имеющий свойства Name и Popularity. Метод GetData() генерирует и возвращает массив элементов DataItem. Эта методика привязки будет также работать с методами, которые возвращают объекты DataSet и DataTable. Гибкость использования ObjectDataSource обусловлена тем, что средства, определяющие источник данных, абстрагируются от диаграммы, что позволяет свободно изменять бизнес-логику. Для работы с данными создается новый экземпляр ObjectDataSource с передачей конструктору имени созданного класса извлечения и имени метода, который должен быть вызван для получения данных. В рассматриваемом примере ими соответственно являются MyObjectDataSource и GetData():
После создания ObjectDataSource привязывается к элементу управления через свойство Chart.DataSource. На этот момент источник данных действует в качестве моста между классом извлечения и диаграммой, но диаграмма не знает, что делать с данными, которые доступны. Эта информация предоставляется с использованием свойств Series.XValueMember и Series.YValueMember, которые позволяют определять, какие члены объекта ObjectDataSource должны применяться для осей X и Y. Диаграмма, созданная этим методом, показана на рисунке ниже:
Читайте также: