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

  • Размер: 242.5 Кб
  • Количество слайдов: 32

Описание презентации ADO. NET ADO. NET это набор классов, по слайдам

ADO. NET ADO. NET

ADO. NET это набор классов, которые предоставляют службы доступа к данным программисту,  работающему на платформе.ADO. NET это набор классов, которые предоставляют службы доступа к данным программисту, работающему на платформе. NET.

Сравнение ADO и ADO. NET - эволюционное развитие ADO.  Термин  ADO. 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 Использование разъединенной модели доступа к данным Хранение данных в объектахПреимущества и нововведения в ADO. NET Использование разъединенной модели доступа к данным Хранение данных в объектах Data. Set Глубокая интеграция с XML

Архитектура ADO. NET Архитектура ADO. NET

Поставщики данных. NET Framework Data Provider for SQL Server  . NET Framework Data Provider forПоставщики данных. 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 является центральным элементом поддержки разъединенных распределенных сценариев данных в ADO. NET.

Внутреннее устройство Data. Set Внутреннее устройство Data. Set

Способы работы с Data. Set Программно создать Data. Table и Constraint  внутри Data. Set иСпособы работы с Data. Set Программно создать Data. Table и Constraint внутри Data. Set и заполнить таблицы данными Заполнить Data. Set таблицами данных из существующего реляционного источника данных с помощью Data. Adapter Загрузить и сохранить содержимое Data. Set с помощью XML-кода

Объект Connection объект Connection используется для подключения к определенному источнику данных.  поставщика данных . NETОбъект 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Открытие/закрытие соединения // Вариант № 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  получает или задает строку, используемую для подключения к базеСинтаксис строки соединения Свойство 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;Пример строки соединения 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; строка замены 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  получает однопроходный поток данных из БД, доступный только для чтения.  ЧтобыОбъект 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 commandstatic 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. . : :Метод Read перемещает Data. Reader к следующей записи. Возвращаемое значение Тип: System. . : : . Boolean true, если имеются строки; false , если нет строк.

Доступ к столбцам По имени: reader[ “column_name” ] ; По индексу: reader[0] ; reader. Get. IntДоступ к столбцам По имени: reader[ “column_name” ] ; По индексу: reader[0] ; reader. Get. Int 32(0); // типизи- рованный метод доступа

Метод Next. Result При возвращении нескольких результирующих наборов объект Data. Reader предоставляет метод Next. Result дляМетод Next. Result При возвращении нескольких результирующих наборов объект Data. Reader предоставляет метод Next. Result для просмотра наборов результатов по порядку. Метод Next. Result перемещает средство чтения данных на следующий результат. По умолчанию средство чтения данных располагается на первом результате.

static  void Retrieve. Multiple. Results( Sql. Connection connection) {   Sql. Command command =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 позволяет обращаться к командам базы данных для возврата данных изменения данных выполнения хранимых процедур передачи или получения сведений о параметрах

Создания  объекта Command  string  sql =INSERT INTO tbl. Example (column. Ex) VALUES (‘Value.Создания объекта 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Методы 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Параметры Создание: Sql. Parameter parameter = new Sql. Parameter(); Свойство Direction Input. Output Return. Value

Пример static void Example. Func  ( Sql. Connection connection,  string Param. 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. Adapter Функции: получение данных из источника данных заполнение таблиц в Data. Set сохранение изменений, сделанных в объекте Data. Set, в источнике данных

Пример string query. Str = SELECT * FROM tbl. Example; Sql. Data. Adapter adapter = newПример 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; Постраничный просмотр результата запроса 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 Свойства Data. Adapter Select. Command Insert. Command Update. Command Delete. Command

Пример Sql. Data. Adapter adapter = new Sql. Data. Adapter();   adapter. Update. 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,Пример 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);