Введение в ADO.NET. Источник данных - XML-файл. Отображение данных связанной таблицы, страница 2

¨  Вторая коллекция позволяет добавить к таблице произвольные, заданные вами, свойства.

DataViewSettingsCollection представляет собой типизированную коллекцию, работающую по принципу списка, а PropertyCollection работает по принципу HashTable и, поэтому, хранит пары типа DictionaryEntry.

Поставщики данных

Связь с базой данных поддерживается за счет группы функциональных объектов, называемой поставщиками данных (.NET Data Providers). Их совместная работа позволяет управлять эффективностью процесса обмена данными.

¨  Connections — классы, осуществляющие соединение с источником данных,

¨  DataAdapters — классы, осуществляющие перенос данных из реальных таблиц базы данных в коллекцию таблиц (объектов типа DataTable), поддерживаемых классом DataSet.

¨  Commands — классы, реализующие выполнение команд (SQL-запросов или хранимых процедур) при обращении к базе данных.

¨  DataReaders — классы, осуществляющие выборку данных из базы в безопасном режиме (read-only).

Эти объекты работают в случае, когда источником данных является реальная база данных, а не коллекция, массив или XML-файл. Сейчас мы рассмотрим случай, когда источником данных является не база  данных, а XML-файл. Знакомство с другими поставщиками данных пока отложим. Далее в курсе мы покажем, как связать DataSet с реальной таблицей базы данных, созданной в архитектуре OLEDB или SQL Server.

Источник данных — XML-файл

Рассмотрим приемы работы с объектами семейства классов ADO.NET: DataSet, DataTable, DataColumn, DataRow, DataRowView, а также новым элементом табличного отображения данных — DataGridView, который на сей раз будет связан не с коллекцией типа ArrayList, как было в предыдущем семестре, а с набором данных, управляемым классом DataSet.

Множество студентов будем хранить в объекте studs класса DataTable. Множество экзаменов будем хранить в объекте exams. Класс DataTable определен в пространстве имен System.Data. Он является стержнем дерева классов подсистемы ADO.NET, обладает универсальными возможностями, позволяя оперировать произвольными данными в памяти. Объекты класса DataTable активно используются другими классами, такими как: DataSet (отображение в памяти всей базы данных) и DataView (образ таблицы).

¨  Создайте новый проект под именем PeopleGridView, переименуйте файл и класс (Form1 в MainForm),

¨  В строке Text свойств формы задайте значение Students Table,

Элементы управления на форме

Добавьте компонент MenuStrip, идентифицируйте его как mainMenu, в правом верхнем углу отыщите кнопку Smart button (см. рис. ), нажмите ее и выберите команду Insert standard Items.

Откройте пункт меню Edit и добавьте две команды &Find и ToolStripSeparator, как показано ниже.

Объекты класса ToolStripMenuItem (также как и MenuItem при использовании компонета MainMenu) содержат встроенные коллекции Items — ссылок на реальные или виртуальные команды меню (объекты типа ToolStripItem). Каждый объект класса ToolStripMenuItem способен породить дерево вложенных объектов (меню), пока вам не надоест вкладывать меню в меню и вы не остановитесь на каком-то уровне. Объекты этого, последнего уровня и будут рабочими командами меню.

Вместо элемента Toolbar, который работал в .NET Framework 1.1, используем новый элемент типа ToolStrip (с идентификатором toolStrip).

В свою внутреннюю коллекцию Items типа ToolStripItemCollection он позволяет добавлять кнопки и некоторые другие элементы управления. Вы уже догадались, что кнопка с подсказкой Add ToolStripButton, автоматически появляющаяся на поверхности toolStrip в режиме дизайна, служит для ввода в коллекцию новых элементов. Используйте ее для вставки кнопок, меток и выпадающего списка. Вы можете, как и ранее, воспользоваться Smart button (), добавить набор стандартных кнопок, а затем удалить ненужные и добавить недостающие элементы. Для изменения местоположения и размеров элементов на форме удобно пользоваться клавишами, в том числе и в комбинации с Shift.

¨  Кнопкам  (см. рис.) присвойте имена: btnOpen, btnSave и btnFindNext.