- •Работа с автономными объектами ADO
- •Отсоединённые данные
- •Объект DataSet
- •DataSet
- •Создание экземпляра объекта DataSet
- •Создание экземпляра объекта DataSet
- •Обычно выполняют следующие шаги создания и обновления
- •Ввод данных в объект DataSet
- •Объект DataAdapter
- •Объект DataAdapter
- •Объект DataAdapter
- •DataReader vs. DataAdapter
- •Создание объекта DataAdapter
- •1 конструктор
- •2 конструктор принимает строку запроса и объект-подключение
- •3 конструктор
- •Метод Fill
- •Метод FILL
- •Синтаксис вызова метода Fill для заполнения объекта DataSet
- •Использование метода Fill
- •Объект DataRow
- •Модификация и обновление
- •Добавление записи
- •Добавление записи - пример
- •Редактирование записи
- •Редактирование записи - пример
- •Удаление записи
- •Удаление записи
- •Возможности поиска и фильтрации DataTable
- •Существует 2 метода для поиска данных по заданному критерию
- •…‘Создание и открытие соединения
- •Второй метод
- •Метод Select (продолжение)
- •Поддержка изменений в объектах DataRow
- •Изменения в объектах DataRow, которые еще не были приняты или отклонены, обслуживаются перечислениями
- •Свойство RowState
- •Свойство DataRowVersion
- •Просмотр строки (разные версии)
- •Принятие и отклонение изменений в DataTable
- •Итого
- •Передача изменений в БД
- •Передача обновлений в БД
- •1. Передача обновлений DataAdapter-ом
- •Метод DataAdapter.Update -
- •DataAdapter.Update - пример
- •Команды объекта DataAdapter
- •Создать INSERT, DELETE, UPDATE для обновления можно:
- •1. Вручную
- •1. Вручную - пример
- •2. Объект CommandBuilder
- •2. Объект SqICommandBuilder для генерирования логики
- •условия:
- •Пример
- •Public dt As New DataTable Public da As OleDbDataAdapter
- •Изменение данных
- •Обратная запись в БД
- •КОНЕЦ ЛЕКЦИИ!!
2. Объект CommandBuilder
53
2. Объект SqICommandBuilder для генерирования логики
Чтобы автоматически создать инструкции SQL для DataAdapter,
сначала
1)следует вручную задать его свойство
SelectCommand,
2)создать объект CommandBuilder с помощью конструктора New и в
качестве аргумента указать
DataAdapter.
54
условия:
1.запрос возвращает данные только из одной таблицы;
2.на таблице определен первичный ключ;
3.первичный ключ есть в результатах вашего запроса.
4.Логика автоматического создания команд дает сбой при наличии в именах столбцов или таблиц любых специальных символов, например пробелов, точек, двойных кавычек или других символов, отличных от алфавитно-цифровых, даже отделенных квадратными скобками.
55
Код
Dim Testda As New OleDbDataAdapter("Select * from Animals", connectionString)
Dim cmdBldr As New OleDbCommandBuilder(Testda)
56
Пример |
DataGridView |
||
|
|
|
|
|
|
|
|
Public dt As New DataTable Public da As OleDbDataAdapter
Получить данные
Dim strConn, strSQL As String strConn = "Data Source=…"
strSQL = "SELECT * FROM модель"
da = New OleDbDataAdapter(strSQL, strConn) da.Fill(dt)
DataGridView1.DataSource = dt
58
Изменение данных
Dim rowInQuestion As DataRow rowInQuestion = dt.Rows(0)
rowInQuestion("название_модели") = "Модель0007" rowInQuestion = dt.Rows(2)
rowInQuestion.Delete()
dt.Rows.Add(rowInQuestion)
59
Обратная запись в БД
Dim cmbldr As OleDbCommandBuilder = New OleDbCommandBuilder(da)
da.UpdateCommand = cmbldr.GetUpdateCommand() da.InsertCommand = cmbldr.GetInsertCommand() da.DeleteCommand = cmbldr.GetDeleteCommand()
da.Update(dt)
60
КОНЕЦ ЛЕКЦИИ!!
61
