ADO. NET ADO. NET это набор классов,

































- Размер: 242.5 Кб
- Количество слайдов: 32
Описание презентации ADO. NET ADO. NET это набор классов, по слайдам
ADO. NET
ADO. NET это набор классов, которые предоставляют службы доступа к данным программисту, работающему на платформе. NET.
Сравнение ADO и ADO. NET — эволюционное развитие ADO. Термин ADO. NET Резидентное представление данных в памяти Использует объект Record. Set, который напоминает отдельную таблицу. Использует объект Data. Set, который может содержать одну или более таблиц, представленных объектами Data. Table Передача данных через межсетевые экраны (firewalls) Проблематично, потому что межсетевые экраны обычно конфигурируются так, чтобы предотвратить запросы системного уровня, которые используются в COM (Component Object Model). Поддерживается, потому что объекты Data. Set, используемые ADO. NET, передают XML, разработанный на основе HTML, который может проходить через межсетевые экраны. Масштабируемость Блокировки баз данных и длительные, активные подключения к базам данных могут стать причиной коллизий и сильно ограничивать ресурсы базы данных. Офлайновый доступ к базам данных без накладывания длительных блокировок или применения длительных, активных подключений к базе данных, существенно разгружает ресурсы базы данных.
Преимущества и нововведения в ADO. NET Использование разъединенной модели доступа к данным Хранение данных в объектах Data. Set Глубокая интеграция с XML
Архитектура ADO. NET
Поставщики данных. NET Framework Data Provider for SQL Server . NET Framework Data Provider for OLE DB . NET Framework Data Provider for ODBC . NET Framework Data Provider for Oracle
Объект Data. Set является центральным элементом поддержки разъединенных распределенных сценариев данных в ADO. NET.
Внутреннее устройство Data. Set
Способы работы с Data. Set Программно создать Data. Table и Constraint внутри Data. Set и заполнить таблицы данными Заполнить Data. Set таблицами данных из существующего реляционного источника данных с помощью Data. Adapter Загрузить и сохранить содержимое Data. Set с помощью XML-кода
Объект Connection объект Connection используется для подключения к определенному источнику данных. поставщика данных . NET Framework объект Connection для SQL Server Sql. Connection для OLE DB Ole. Db. Connection для ODBC Odbc. Connection для Oracle. Connection
Открытие/закрытие соединения // Вариант № 1 using ( Sql. Connection connection = new Sql. Connection (connection. String)) { connection. Open(); …………. } // Вариант № 2 Sql. Connection connection = new Sql. Connection (connection. String)); connection. Open(); ………… connection. Close();
Синтаксис строки соединения Свойство Connection. String получает или задает строку, используемую для подключения к базе данных. Формат строки соединения: keyword 1=value 1; keyword 2=value 2;
Пример строки соединения connection. String = «Data Source=. \SQLEXPRESS; Attach. Db. Filename=C: \prog\App_Data\BD. mdf; Integrated Security=True; Connect Timeout=30»
строка замены Data. Directory Attach. Db. Filename=C: \prog\App_Data\BD. mdf; Attach. Db. Filename=|Data. Directory|\BD. mdf;
Транзакция состоит из одной команды или группы команд, которые выполняются как одна единица работы. connection. Open(); Sql. Transaction sql. Tran = connection. Begin. Transaction(); Sql. Command command = connection. Create. Command(); command. Transaction = sql. Tran; try { …………………. sql. Tran. Commit(); } catch ( Exception ex) { sql. Tran. Rollback(); } connection. Close();
Объект Data. Reader получает однопроходный поток данных из БД, доступный только для чтения. Чтобы создать объект Sql. Data. Reader рекомендуется вызвать метод Execute. Reader объекта Sql. Command. Sql. Data. Reader reader = command. Execute. Reader();
static void function( Sql. Connection connection) { using (connection) { Sql. Command command = new Sql. Command ( «SELECT Category. ID, Category. Name FROM Categories; » , connection); connection. Open(); Sql. Data. Reader reader = command. Execute. Reader(); if (reader. Has. Rows) { while (reader. Read()) { Console. Write. Line( «{0}\t{1}» , reader. Get. Int 32(0), reader. Get. String(1)); } else { Console. Write. Line( «No rows found. » ); } reader. Close(); } }
Метод Read перемещает Data. Reader к следующей записи. Возвращаемое значение Тип: System. . : : . Boolean true, если имеются строки; false , если нет строк.
Доступ к столбцам По имени: reader[ “column_name” ] ; По индексу: reader[0] ; reader. Get. Int 32(0); // типизи- рованный метод доступа
Метод Next. Result При возвращении нескольких результирующих наборов объект Data. Reader предоставляет метод Next. Result для просмотра наборов результатов по порядку. Метод Next. Result перемещает средство чтения данных на следующий результат. По умолчанию средство чтения данных располагается на первом результате.
static void Retrieve. Multiple. Results( Sql. Connection connection) { Sql. Command command = new Sql. Command ( «SELECT Category. ID, Category. Name FROM dbo. Categories; » + «SELECT Employee. ID, Last. Name FROM dbo. Employees» , connection); connection. Open(); Sql. Data. Reader reader = command. Execute. Reader(); while (reader. Has. Rows) { Console. Write. Line( «\t{0}\t{1}» , reader. Get. Name(0), reader. Get. Name(1)); while (reader. Read()) { Console. Write. Line( «\t{0}\t{1}» , reader. Get. Int 32(0), reader. Get. String(1)); } reader. Next. Result(); } reader. Close(); connection. Close(); }
Объект Command позволяет обращаться к командам базы данных для возврата данных изменения данных выполнения хранимых процедур передачи или получения сведений о параметрах
Создания объекта Command string sql =»INSERT INTO tbl. Example (column. Ex) VALUES (‘Value. Ex’)»; Sql. Connection conn = new Sql. Connection(conn. Str); Sql. Command cmd 1 = new Sql. Command(sql, conn); Sql. Command cmd 2 = new Sql. Command(); cmd 2. Connection = conn; cmd 2. Command. Text = sql; cmd 2. Command. Type = Command. Type. Text; Sql. Command cmd 3 = conn. Create. Command() ;
Методы Execute. Reader Sql. Data. Reader reader = command. Execute. Reader(); Execute. Scalar Int 32 ID = (Int 32) command. Execute. Scalar(); Execute. Non. Query Int 32 str = command. Execute. Non. Query(); Execute. XMLReader Xml. Reader xmlread = command. Execute. XMLReader();
Параметры Создание: Sql. Parameter parameter = new Sql. Parameter(); Свойство Direction Input. Output Return. Value
Пример static void Example. Func ( Sql. Connection connection, string Param. Value) { Sql. Command command = new Sql. Command(); command. Connection = connection; command. Command. Text = «Name. Procedure»; command. Command. Type = Command. Type. Stored. Procedure; Sql. Parameter parameter = new Sql. Parameter(); parameter. Parameter. Name = » @ Param. Name»; parameter. Sql. Db. Type = Sql. Db. Type. NVar. Char; parameter. Direction = Parameter. Direction. Input; parameter. Value = Param. Value; command. Parameters. Add(parameter); connection. Open(); Sql. Data. Reader reader = command. Execute. Reader(); }
Объект Data. Adapter Функции: получение данных из источника данных заполнение таблиц в Data. Set сохранение изменений, сделанных в объекте Data. Set, в источнике данных
Пример string query. Str = «SELECT * FROM tbl. Example»; Sql. Data. Adapter adapter = new Sql. Data. Adapter(query. Str, connection); Data. Set dataset = new Data. Set(); adapter. Fill(dataset, «tbl. Example»);
Постраничный просмотр результата запроса int current. Index = 0; int page. Size = 5; adapter. Fill (dataset, current. Index, page. Size, «tbl. Example»);
Свойства Data. Adapter Select. Command Insert. Command Update. Command Delete. Command
Пример Sql. Data. Adapter adapter = new Sql. Data. Adapter(); adapter. Update. Command = new Sql. Command( «UPDATE tbl. Example SET ID = @ID, Column = @Param WHERE ID = @old. ID», connection); adapter. Update. Command. Parameters. Add(«@ID», Sql. Db. Type. Int , «ID»); adapter. Update. Command. Parameters. Add(«@Param», Sql. Db. Type. Var. Char, 40, «Column»); adapter. Update. Command. Parameters. Add(«@old. ID», Sql. Db. Type. Int , «ID» ). Source. Version = Data. Row. Version. Original;
Пример Sql. Data. Adapter adapter = new Sql. Data. Adapter( «SELECT ID, Column FROM tbl. Example», connection); adapter. Update. Command = new Sql. Command(«UPDATE tbl. Example SET Column = @Param WHERE ID = @ID», connection); adapter. Update. Command. Parameters. Add(«@Param», Sql. Db. Type. Var. Char, 40, «Column»); adapter. Update. Command. Parameters. Add(«@ID», Sql. Db. Type. Int, «ID» ). Source. Version = Data. Row. Version. Original; Data. Table = new Data. Table(); data. Adpater. Fill(Table); Data. Row = Table. Rows[0]; Row[«Column»] = «New value»; data. Adpater. Update(Table);