Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемЛидия Шаверина
1 ADO.NET Интегрированная среда разработки
2 ADO.NET Общая картина Все типы ADO.NET предназначены для выполнения одного набора задач: установить соединение с базой данных, создать и заполнить данными объект DataSet, отключиться от хранилища данных, вернуть изменения внесенные в DataSet обратно в базу. DataSet представляет собой локальную копию взаимосвязанных таблиц. После создания DataSet и его заполнения данными мы можем программными средствами производить запросы к нему и передвигаться по таблицам. Мы можем добавлять, удалять и изменять данные, накладывать фильтры и тд.
3 База данных на сервере DataSet1 Прикладная программа 1 Прикладная программа 2 DataSet2
4 DataSet Модель объектов ADO.NET очень обширна, но в ее основе лежит довольно простой набор классов. Наиболее важным из них считается DataSet. DataSet представляет собой отображение используемой базы данных, перенесенное на машину пользователя. При этом нет необходимости постоянно подключаться к серверу базы данных для модификации данных. Лишь иногда вы соединяете DataSet с его родительской базой данных и модифицируете ее внесенными вами изменениями. В то же время вы модифицируете DataSet теми изменениями в базе данных, которые сделали другие процессы.
5 DataSet DataSet состоит из объектов типа DataTable и объектов DataRelation. К ним можно обращаться как к свойствам объекта DataSet. Свойство Tables возвращает объект типа DataTableCollection, который содержит все объекты DataTable используемой базы.
6 Структура DataSet
7 Объекты DataTable и DataColumn Таблицы и поля Объект типа DataTable представляет собой таблицу базы данных. Такой объект может быть создан программно или путем запроса к базе данных. Объект DataTable состоит из строк и столбцов. Строки представляют собой отдельные записи таблицы, столбцы соответствующие поля. Для получения совокупности столбцов объект DataSet имеет свойство Columns, возвращающее DataColumnCollection, которое в свою очередь состоит из объектов типа DataColumn. Каждый объект DataColumn представляет собой отдельный столбец таблицы, из которого можно получить любую запись.
8 Объект DataRelation Связи между таблицами Кроме набора таблиц DataSet имеет свойство Relations, которое возвращает объект типа Data Relation Collection, состоящий из объектов DataRelation. Каждый DataRelation объект хранит данные о связях между двумя таблицами посредством объектов DataColumn. Такое отношение называется на языке баз данных один ко многим (one-to-many).
9 Объект DataRow Строки Свойство Rows объекта DataTable возвращает совокупность всех строк таблицы DataRowCollection. Это свойство следует применять для того, чтобы пользоваться результатами запросов к базе данных. Вы можете обращаться к записям таблицы как к элементам простого массива. Это значительно упрощает процесс доступа к элементам базы. Мы рассмотрим это более подробно далее на примере.
10 DataAdapter DataSet это образ реляционной базы данных. ADO.NET использует объект типа DataAdapter как мост между DataSet и источником данных, который является основной базой данных. DataAdapter содержит метод Fill() для обновления данных из базы и заполнения DataSet.
11 DataAdapter База данных (Источник данных) DataAdapterDataSet Fill() Прикладная программа
12 DBCommand и DBConnection Объект DBConnection представляет собой средство для соединения DataSet с источником данных. Соединение может быть доступно при помощи различных командных объектов. Например, объект DBCommand позволяет послать команду (обычно это SQL запрос или сохраненная процедура) к базе данных. Часто командные объекты создаются неявно, во время формирования объекта DataSet. ADO.NET позволяет вам явно обращаться к таким объектам
13 Провайдеры данных.NET В ADO.NET используются так называемые провайдеры данных (Data Providers).NET. Они обеспечивают доступ к соответствующим источникам данных и содержат четыре ключевых объекта: Connection, Command, DataReader и DataAdapter. Например, провайдер: SQL Server.NET Data Provider.
14 Структура пространств имен Типы (классы, структуры, перечислимые и т.д.), связанные с каждым из провайдеров данных.NET, находятся в собственных пространствах имен: System.Data.SqlClient. Содержит типы SQL Server.NET Data Provider, Руководство по архитектуре доступа к данным на платформе.NET System.Data.OleDb. Содержит типы OLE DB.NET Data Provider. System.Data.Оdbc. Содержит типы ODBC.NET Data Provider. System.Data. Содержит типы, независимые от провайдеров, например DataSet и DataTable.
15 Структура пространств имен Для каждого из провайдеров в его пространстве имен содержатся реализации объектов Connection, Command, DataReader и DataAdapter. Имена реализаций объектов из пространства имен SqlClient начинаются с префикса "Sql", а имена реализаций из пространства имен OleDb с префикса «OleDb». Реализация объекта Connection из пространства имен SqlClient называется SqlConnection, тогда как ее эквивалент из OleDb OleDbConnection. Соответствующие реализации объекта DataAdapter называются SqlDataAdapter и OleDbDataAdapter.
16 Использование объекта DataSet Для обычного разработчика это означает, что класс DataSet предоставляет средства моделирования реляционных данных в памяти. И если ADO.NET в целом предполагает работу с данными в отсоединенном режиме, объект DataSet позволяет «скрыть» этот факт и обращаться к информации так, как будто бы она находится в базе данных.
17 Использование объекта Connection using System; using System.Data; using System.Data.OleDb; // Создание объекта Connection. OleDbConnection conn = new OleDbConnection("Provider=SQLOLEDB;" + "Server=vmkss-serv;" "Database=ADONET;" + "UID=someuser; ") ; // Установка соединения с базой данных. conn.Open() ;
18 Использование объекта DataSet // Создание объектов DataSet and Command. DataSet ds = new DataSet(); OleDbDataAdapter daAuthors = new OleDbDataAdapter("SELECT * FROM CUSTOMER",conn); // Заполнение объекта DataSet. daAuthors, Fill(ds); // Теперь мы можем закрыть соединение, conn.Close () ; // Извлечение таблицы из объекта DataSet. DataTable tbl = ds.Tables["Table"]; // Обработка всех строк таблицы, foreach (DataRow row in tbl.Rows) ( // Вывод на консоль значения всех полей заданной строки, foreach (Object val in row.ItemArray) { Console.Write{val.ToStringO); } Console.WriteLine(""); // Вывод пустой строки.
19 Обновление БД с помощью объекта DataSet Объект DataSet предоставляет возможность извлечения подмножества данных, которые были изменены, удалены или добавлены, что позволяет проверить их достоверность перед тем, как отразить изменения непосредственно в базе данных.
20 Обновление БД с помощью объекта DataSet Поскольку мы уже создали объект DataAdapter, нам остается связать с ним объект CommandBuilder и вызвать метод DataAdapter.Update () для обновления, добавления или удаления записей. Соответствующие операции выполняются с помощью команд, заданных свойствами объекта DataAdapter InsertCommand, UpdateCommand и DeleteCommand.
21 Первый шаг – создаем Connection using System; using System.Data; using System.Data.OleDb; // Создание объекта Connection. OleDbConnection conn = new OleDbConnection("Provider=SQLOLEDB; " + "Server=vmkss-serv;" + "Database=ADONET;" + "UID=sa;"};
22 Второй шаг – создаем DataSet // Создание объектов DataSet и Command. DataSet ds = new DataSet (); OleDbDataAdapter daAuthors = new OleDbDataAdapter("SELECT * FROM CUSTOMER", conn);
23 Третий шаг – создаем CommandBuilder // Создание объекта OleDbCommandBuilder // оболочки объекта DataAdapter, поддерживающей // динамическое генерирование команд // обновления, добавления и удаления данных. OleDbCommandBuilder bldr = new OleDbCommandBuilder (daAuthors);
24 Четвертый шаг - Adapter // Заполнение объекта DataSet. daAuthors.Fill(ds); // Извлечение таблицы из объекта DataSet. DataTable tbl = ds.Tables["Table"];
25 Комментарий Был создан экземпляр класса OleDbCommandBuilder. При создании объекта CommandBuilder конструктору передается объект DataAdapter. Объект CommandBuilder регистрирует себя в качестве "слушателя" объекта DataAdapter и, при необходимости, создает команды обновления, удаления или вставки данных.
26 Завершение Обратите внимание: после выполнения запроса к базе данных (в методе Fill) соединение было закрыто, затем мы заново открываем его непосредственно перед выполнением метода Update (). conn. Open () ; daAuthors.Update(ds);
27 Доступ к базе данных SQL Server с помощью поставщика OleDB using System; using System.Data; using System.Data.OleDb; // Создание объекта Connection. OleDbConnection conn = new OleDbConnection("Provider=SQLOLEDB;" + "Server=localhost;" + "Database=ADONET;" + "UID=someuser;"); // Создание объектов DataSet и Command. DataSet ds = new DataSet(); OleDbDataAdapter daAuthors = new OleDbDataAdapter( "SELECT * FROM CUSTOMER", conn); // Заполнение объекта DataSet. daAuthors.Fill(ds);
28 Доступ к базе данных SQL Server с помощью поставщика OleDB // Извлечение таблицы из объекта DataSet. DataTable tbl « ds.Tables["Table"]; // Обработка всех строк таблицы. foreach( DataRow row in tbl.Rows) { // Вывод на консоль значений всех полей заданной строки. foreach {Object val in row.ItemArray} { Console.Write(val.ToString()); } Console.WriteLine(""); // Вывод пустой строки.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.