Работы с базой данных в отсоединенном режиме

Вопросы:

  1. Объект DataAdapter
  2. Объект DataSet
  3. Заполнение объекта DataSet из базы данных
  4. Работа с объектом DataSet

Провайдер данных это 4 объекта:

В VS существуют провайдеры данных для различных БД.

Объект Connection соединяет приложение и базу данных. Для этого ему нужны имя сервера, базу данных и режим безопасности.

Объект Command принимает запрос, определяет тип команды (тип запроса) и текст запроса.

Объект DataReader считывает данные из определенной таблицы построчно. За одно обращение считывает одну строку таблицы.

Работа с БД производится в двух режимах: подсоединенном и отсоединенном.

Подсоединенный режим: подключение->считывание->отключение. А дальше идет работа в отсоединенном режиме.

То есть подсоединенный режим включается на короткое время. А основной режим это отсоединенный.

1. Объект DataAdapter

Объект DataAdapter предназначен для чтения данных и записи данных в БД.

Методы:

  1. Fill(): Добавляет DataTable к DataSet за счет выполнения запроса в SelectCommand. Если запрос возвращает множественные результирующие наборы, этот метод добавляет множество объектов DataTable за раз. Этот метод можно также использовать для добавления данных к существующему объекту DataTable.

  2. FillSchema(): Добавляет DataTable к DataSet за счет выполнения запроса в SelectCommand и извлечения только информации о схеме. Этот метод не добавляет никаких данных к DataTable. Вместо этого он просто предварительно конфигурирует DataTable с помощью детальной информации об именах столбцов, типах данных, первичных ключах и ограничениях уникальности.

  3. Update(): Проверяет все изменения отдельного объекта DataTable и применяет пакет этих изменений к источнику данных за счет выполнения соответствующих операций InsertCommand, UpdateCommand и DeleteCommand.

Способы создания объекта SqlDataAdapter

  1. Использовать конструктор без параметров, а команду SELECT и подключение установить позже
SqlDataAdapter adapter = new SqlDataAdapter();
  1. Использовать конструктор с параметром в виде объекта SqlCommand
SqlDataAdapter adapter = new SqlDataAdapter(command);
  1. Использовать конструктор с параметрами в виде sql-выражения SELECT и объекта SqlConnection
SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
  1. Использовать конструктор в виде sql-выражения SELECT и строки подключения
SqlDataAdapter adapter = new SqlDataAdapter(sql, connectionString);

2. Объект DataSet

Объект предназначен для хранения данных из БД в приложении. Мы подключились к БД, прочитали данные и отключились. И теперь работаем с тем что у нас в приложении.

В объект DataSet входит:

Объект 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");