Интернет Университет информационных технологий Твой путь к знаниям
  Искать!
Курсы | Обучение | Школа | Магазин | Общение | Новости | Помощь

поддержка курса Создание Windows-приложений на основе Visual C#
информация [+] Автор: Ч.А. Кариев


 
 
Страницы: « | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | вопросы | » для печати и PDA
Если Вы заметили ошибку - сообщите нам или выделите ее и нажмите Ctrl+Enter

Модель объектов ADO.NET

Модель объектов ADO.NET состоит из набора классов. DataSet представляет собой класс ADO.NET, который отвечает за отображение таблицы (или таблиц, или даже всей базы) используемой базы данных на компьютере пользователя без непрерывной связи с базой данных. В приложении, созданном с помощью Data Form Wizard, мы имели возможность вносить изменения в загруженную таблицу, перемещаться по записям, причем до нажатия кнопки Update изменения в самой базе данных, т.е. в файле RBProduct.mdb, не происходили. В чем же дело? Дело в том, что все данные и были загружены в объект DataSet, созданный мастером. Только при нажатии кнопки Update происходила передача данных из DataSet в саму базу данных. Не следует путать объект DataSet c оперативной памятью компьютера – загруженная таблица не находится в оперативной памяти компьютера.

Представьте себе, что вы обслуживаете гипотетическую доску объявлений. Каждое утро вы берете обычный бумажный блокнот, записываете в него все свежие объявления, хранящиеся в централизованном банке данных, и отправляетесь к доске. Вы переписываете с блокнота на доску все объявления, а в блокнот записываете все те объявления, которые были добавлены на доску посетителями. Затем вы возвращаетесь в банк данных и вносите в него информацию, которую записали в блокнот c доски. Ваш блокнот и будет являться экземпляром класса DataSet. В этом процессе самым важным — для вас конечно, не для централизованного банка данных, — будет ваш блокнот. Аналогично, класс DataSet является ключевым во всей модели классов ADO.NET.

DataSet состоит из объектов типа DataTable и объектов DataRelation. В коде к ним можно обращаться как к свойствам объекта DataSet, т. е. используя точечную нотацию. Свойство Tables возвращает объект типа DataTableCollection, который содержит все объекты DataTable используемой базы данных.

Таблицы и поля (объекты DataTable и DataColumn)

Объекты DataTable используются для представления таблиц в DataSet. DataTable представляет одну таблицу из базы данных. В свою очередь, DataTable составляется из объектов DataColumn.

DataColumn — это блок для создания схемы DataTable. Каждый объект DataColumn имеет свойство DataType, которое определяет тип данных, содержащихся в каждом объекте DataColumn. Например, вы можете ограничить тип данных до целых, строковых и десятичных чисел. Поскольку данные, содержащиеся в DataTable, обычно переносятся обратно в исходный источник данных, вы должны согласовывать тип данных с источником.

Объекты DataRelation

Объект DataSet имеет также свойство Relations, возвращающее коллекцию DataRelationCollection, которая, в свою очередь, состоит из объектов DataRelation. Каждый объект DataRelation выражает отношение между двумя таблицами (сами таблицы связаны по какому-либо полю (столбцу); следовательно, эта связь осуществляется через объект DataColumn).

Строки (объект DataRow)

Коллекция Rows объекта DataTable возвращает набор строк (записей) заданной таблицы. Эта коллекция используется для изучения результатов запроса к базе данных. Мы можем обращаться к записям таблицы как к элементам простого массива.

DataAdapter

DataSet — это специализированный объект, содержащий образ базы данных. Для осуществления взаимодействия между DataSet и источником данных используется объект типа DataAdapter. Само название этого объекта — адаптер, преобразователь, — указывает на его природу. DataAdapter содержит метод Fill() для обновления данных из базы и заполнения DataSet.

Объекты DBConnection и DBCommand

Объект DBConnection осуществляет связь с источником данных. Эта связь может быть одновременно использована несколькими командными объектами. Объект DBCommand позволяет послать базе данных команду (как правило, команду SQL или хранимую процедуру). Объекты DBConnection и DBCommand иногда создаются неявно в момент создания объекта DataSet, но их также можно создавать явным образом.

Использование визуальной среды для работы с ADO.NET

Когда мы перетаскиваем на форму элемент управления, Visual Studio .NET автоматически генерирует код, описывающий этот элемент. Если при размещении кнопок, текстовых полей и других элементов управления создавать их программно нецелесообразно, то при работе с элементами данных все как раз наоборот – лучше всего создавать все объекты ADO.NET вручную, что обеспечивает большую гибкость приложения. Тем не менее на первых порах использования ADO.NET полезно работать с визуальной средой разработки.

Рассмотрим работу с базой данных Microsoft Acсess xtreme1), входящей в состав Microsoft Visual Studio .NET, и работу с базой Microsoft SQL2) NorthwindCS. В каждой базе есть таблица Customer(s)3). Наша задача – вывести содержимое двух таблиц Customer на две Windows- формы.

Microsoft Access, база данных xtremeMicrosoft SQL, база данных NorthwindCS

Запустите Visual Studio .NET, создайте новый проект, тип проекта — Windows Application.

Назовите его VisualDataMDBНазовите его VisualDataSQLs

Размещаем на создавшейся форме элемент управления DataGrid, свойству Dock устанавливаем значение Fill. Теперь в окне ToolBox переходим на закладку Data (рис. 4.29).

На вкладке Data находятся все элементы управления для работы с ADO.NET

Рис. 4.29.  На вкладке Data находятся все элементы управления для работы с ADO.NET

Поместите на форму объект OleDbDataAdapterПоместите на форму объект SqlDataAdapter

Перед нами появляется Мастер настройки элемента управления. Для OleDbDataAdapter этот Мастер тот же самый, который был описан и изображен на рис. 4.23-4.24. Вернитесь к этим рисункам и сконфигурируйте эти два шага OleDbDataAdapter самостоятельно. Для SqlDataAdapter на вкладке "Поставщик данных" по умолчанию выбран необходимый поставщик (рис. 4.30).

Поставщик данных Microsoft OLE DB Provider for SQL Server

Рис. 4.30.  Поставщик данных Microsoft OLE DB Provider for SQL Server

Нажимаем кнопку "Далее" (или переходим на вкладку "Подключение") (рис. 4.31).

Определение параметров подключения

Рис. 4.31.  Определение параметров подключения

Для подключения к базе данных SQL, расположенной на вашем компьютере, в пункте 1 вводим (local) или просто точку — ".", в пункте 2 используем учетные сведения системы (по умолчанию пароль учетной записи администратора SQL Server – пустой). В пункте 3 выбираем базу данных NorthwindCS. В следующем шаге Мастера — определение типа запроса — параметры, предлагаемые Мастером, будут отличаться (рис. 4.32 и рис. 4.33):

Определение типа запросов объекта OleDbDataAdapter

Рис. 4.32.  Определение типа запросов объекта OleDbDataAdapter

Определение типа запросов объекта SqlDbDataAdapter

Рис. 4.33.  Определение типа запросов объекта SqlDbDataAdapter

Для базы данных Microsoft Access мы можем использовать только SQL-запросы: другие значения не активны. Для базы данных Microsoft SQL Server мы можем либо использовать SQL-запросы, либо создать новую хранимую процедуру (stored procedure), либо использовать существующую хранимую процедуру. Различия подобного рода определяются типом баз данных. Для объекта SqlDataAdapter оставляем значение, предложенное по умолчанию, — использование SQL-запросов.

В следующем шаге — создание SQL-запросов (Generate SQL statements) — мы можем вводить текст запроса непосредственно. Но удобнее всего воспользоваться "Построителем запросов": нажимаем на кнопку "Query Builder…" (рис. 4.34) (Поскольку окна добавления таблиц для обеих баз данных одинаковы — незначительно различается лишь содержимое — я привожу рисунок для OleDbDataAdapter).

Добавление таблицы в окно Построителя запросов

Рис. 4.34.  Добавление таблицы в окно Построителя запросов

Дальше »
Страницы: « | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | вопросы | » для печати и PDA
 
 

Внимание! Если Вы увидите ошибку на нашем сайте, выделите её и нажмите Ctrl+Enter.
Нужна помощь?
• Забыли пароль? Вам сюда...
• Есть вопрос? Спрашивайте!
Вы можете:
• Изменить персональные данные
• Изменить параметры подписки
Интернет-магазин:
• Ваши заказы здесь
• Ваш личный счет
Курсы | Учебные программы | Учебники | Вопросы и Ответы | Форум | Новости | Помощь

Телефон: +7 (499) 253-9312, 253-9313, факс: +7 (499) 253-9310, email: info@intuit.ru
© INTUIT.ru::Интернет-Университет Информационных Технологий - дистанционное образование, 2003-2011
Проект Издательства "Открытые Системы".
Партнеры: РМ Телеком, KRAFTWAY COMPUTERS.
Rambler's Top100