Несвязный уровень ADO.NET

We use cookies. Read the Privacy and Cookie Policy

Несвязный уровень ADO.NET

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

При работе на несвязном уровне ADO.NET вы по-прежнему должны использовать объекты соединения и команды. Кроме того, вы должны использовать специальный объект, называемый адаптером данных (и расширяющий абстрактный DbDataAdapter), чтобы извлекать и обновлять данные. В отличие от связного слоя, данные, полученные с помощью адаптера данных, не обрабатываются с помощью объекта чтения данных. Вместо этого для перемещения данных между вызывающей стороной и источником данных объекты адаптера данных используют объекты DataSet. Тип DataSet – это контейнер, используемый для любого числа объектов DataTable, каждый из которых содержит коллекцию объектов DataRow и DataColumn.

Объект адаптера данных вашего поставщика данных обрабатывает соединение с базой данных автоматически. С целью расширения возможностей масштабируемости адаптеры данных сохраняют соединение открытым минимально возможное время. Как только вызывающая сторона получает объект DataSet, соединение с СУБД разрывается, и вызывающая сторона остается со своей локальной копией удаленных данных. Вызывающая сторона может вставлять, удалять и модифицировать данные DataTable, но физически база данных не будет обновлена до тех пор. пока вызывающая сторона не передаст явно объект DataSet адаптеру данных для обновления. В сущности, DataSet позволяет клиенту имитировать постоянно открытое соединение, в то время как реальные операции выполняются с наборами данных, находящимися в памяти (рис. 22.10).

Рис. 22.10. Объекты адаптера данных передают объекты DataSet клиенту и возвращают их обратно базе данных

Поскольку основным элементом несвязного уровня является тип DataSet, нашей следующей задачей будет выяснение того, как управлять объектом DataSet вручную. Если вы поймете, как это делается, то не будете испытывать никаких проблем При манипуляциях содержимым DataSet, извлеченным из объекта адаптера данных.