Работы с базой данных в отсоединенном режиме
Вопросы:
- Объект DataAdapter
- Объект DataSet
- Заполнение объекта DataSet из базы данных
- Работа с объектом DataSet
Провайдер данных это 4 объекта:
- Connection
- Command
- DataReader
- DataAdapter
В VS существуют провайдеры данных для различных БД.
Объект Connection соединяет приложение и базу данных. Для этого ему нужны имя сервера, базу данных и режим безопасности.
Объект Command принимает запрос, определяет тип команды (тип запроса) и текст запроса.
Объект DataReader считывает данные из определенной таблицы построчно. За одно обращение считывает одну строку таблицы.
Работа с БД производится в двух режимах: подсоединенном и отсоединенном.
Подсоединенный режим: подключение->считывание->отключение. А дальше идет работа в отсоединенном режиме.
То есть подсоединенный режим включается на короткое время. А основной режим это отсоединенный.
1. Объект DataAdapter
Объект DataAdapter предназначен для чтения данных и записи данных в БД.
Методы:
-
Fill(): Добавляет DataTable к DataSet за счет выполнения запроса в SelectCommand. Если запрос возвращает множественные результирующие наборы, этот метод добавляет множество объектов DataTable за раз. Этот метод можно также использовать для добавления данных к существующему объекту DataTable.
-
FillSchema(): Добавляет DataTable к DataSet за счет выполнения запроса в SelectCommand и извлечения только информации о схеме. Этот метод не добавляет никаких данных к DataTable. Вместо этого он просто предварительно конфигурирует DataTable с помощью детальной информации об именах столбцов, типах данных, первичных ключах и ограничениях уникальности.
-
Update(): Проверяет все изменения отдельного объекта DataTable и применяет пакет этих изменений к источнику данных за счет выполнения соответствующих операций InsertCommand, UpdateCommand и DeleteCommand.
Способы создания объекта SqlDataAdapter
- Использовать конструктор без параметров, а команду SELECT и подключение установить позже
SqlDataAdapter adapter = new SqlDataAdapter();
- Использовать конструктор с параметром в виде объекта SqlCommand
SqlDataAdapter adapter = new SqlDataAdapter(command);
- Использовать конструктор с параметрами в виде sql-выражения SELECT и объекта SqlConnection
SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
- Использовать конструктор в виде sql-выражения SELECT и строки подключения
SqlDataAdapter adapter = new SqlDataAdapter(sql, connectionString);
2. Объект DataSet
Объект предназначен для хранения данных из БД в приложении. Мы подключились к БД, прочитали данные и отключились. И теперь работаем с тем что у нас в приложении.
В объект DataSet входит:
- DataTable (Для хранения таблиц)
- DataRow
- DataColumn
- CONSTRAIN
- DataRelation
- DataView
Объект DataSet заполняется автоматически данными из БД или вручную.
4. Работа с объектом DataSet
Ограничение ForeignKeyConstraint
ForeignKeyConstraint EmpSaleFK=new("EmpSaleFk", dsShop.Tables["Employees"].Columns["EmployeeID"], dsShop.Tables["Sales"].Columns["EmpID"]);
EmpSaleFK.DeleteRule=Rule.None;
dsShop.Tables["Sales"].Constraints.Add(EmpSaleFK);
Создание вычисляемых столбцов
worktable.Columns.Add("Total", typeof(Double));
worktable.Columns.Add("SalesTax", typeof(Double), "Total*0.13");