Передача обновлений в базу данных
| Индекс материала |
|---|
| Передача обновлений в базу данных |
| Страница 2 |
| Страница 3 |
Хотя Стиви Ваидер, скорее всего, говорил не о передаче обновлений в БД, приведенная цитата вполне релевантна к нашей теме. ADO. NET предоставляет программистам БД беспрецедентно мощную и гибкую подсистему передачи обновлений. Тем не менее, судя по вопросам, на которые мне приходилось отвечать в различных группах новостей и на конференциях в период тестирования бетаверсии. NET, я могу сказать, что лишь небольшая группа разработчиков действительно понимает, как эффективно использовать эти новые возможности. Большинство встречавшихся мне фрагментов кода на ADO.
NET генерируют логику обноааения при помощи объекта CommandBuilder. В некоторых фрагментах есть предупреждение о необходимости генерировать собственную логику обновления, но практически нигде не объясняется, зачем это нужно и как это сделать. Сколько раз вы интересовались у разработчиков, как работает их код, и те лишь пожимали плечами, улыбались и отвечали: Он просто работает*?
Именно это суеверие я хочу развеять в этой и следующей главах. Чем глубже вы понимаете, как передавать обновления с помощью ADO. NET. тем проще вам генерировать собственную логику обновления и/или передавать обновления с использованием хранимых процедур. Я расскажу, как средствами объек - та DataAdapter передавать отложенные изменения из объекта DataSet в БД, а также о специальных утилитах, экономящих время и не оказывающих отрицательно влияния на производительность и возможности управления. Если вы последовательно читали материал книги, то уже умеете создавать объекты DataSet со строгим контролем типов и без такового для хранения данных, возвращаемых объектами DataAdapter. Кроме того, вы должны уметь изменять содержимое объектов DataSet.
Эта глава познакомит вас с основами передачи изменений из объектов DataSet в БД при помощи объектов DataAdapter. Рассмотрим заказ из БД Northwind. На рис. 10-1 показан запрос, выполненный в SQL Server Query Analyzer для получения сведений об этом заказе. Предположим, клиент звонит и хочет изменить заказ. Сыр тофу не продается, но бутылки острого соуса прямо-таки разлетаются с полок, и люди постоянно спрашивают чай. Из главы 5 вы знаете, как поместить результаты запроса в объект DataSet.
Используя эти знания, вы без труда создадите приложение, выбирающее заказы клиентов в объекты DataSet. А основываясь на материалах главы 6, сумеете сделать так, чтобы приложение изменяло содержимое объекта DataSet в соответствии с инструкциями пользователя. Но, как я уже говорил, изменение содержимого DataSet не отражается на соответствующих записях БД. В главе 5 я рассказал о том, что объект DataAdapter предоставляет метод Update, позволяющий передавать в БД отложенные изменения. Таким образом, можно создать приложение, передающее изменения в составе заказа при помощи следу ющего кода: Visual Basic. NET 'Выбираем содержимое заказа в объект DataTable Dim strConn, strSQL As String strConn = "Provider=SQLOLEDB;Data Source=(local)\NetSDK;" & "Initial Catalog=Northwind;Trusted_Connection=Yes;strSQL = "SELECT OrderlD, ProductID, Quantity, UnitPrice " & "FROM [Order Details] WHERE OrderlD = 10503 " & "ORDER BY ProductIDDim da As New OleDbDataAdapter(strSQL, strConn) Dim tbl As New DataTable("Order Details") da.
Основы работы с Microsoft ADO.NET
Использование поставщика данных .NET
Метео


