CreateCommandBuilder

Метод создает экземпляр класса LinterDbCommandBuilder (построитель команд), унаследованный от абстрактного класса DbCommandBuilder.

Класс LinterDbCommandBuilder автоматически генерирует для каждой таблицы, задействованной в наборе данных (DataSet) необходимые SQL-операторы для синхронизации этих изменений с БД.

Синтаксис
public override DbCommandBuilder CreateCommandBuilder();
Возвращаемое значение

Объект LinterDbCommandBuilder типа System.Data.LinterClient.LinterDbCommandBuilder.

Исключения

Отсутствуют.

Пример
// C#
using System;
using System.Data;
using System.Data.Common;

class CreateCommandBuilderSample
{
  static void Main()
  {
    // Создание фабрики классов провайдера
    DbProviderFactory factory =
      DbProviderFactories.GetFactory("System.Data.LinterClient");
    // Соединение с БД
    DbConnection con = factory.CreateConnection();
    con.ConnectionString = "User ID=SYSTEM;Password=MANAGER8;Data Source=LOCAL";
    con.Open();
    DbCommand cmd = factory.CreateCommand();
    cmd.CommandText = "select * from auto";
    cmd.Connection = con;
    DbDataAdapter adapter = factory.CreateDataAdapter();
    adapter.SelectCommand = cmd;
    // Связывание объектов DbDataAdapter и DbCommandBuilder
    // Объект DbDataAdapter не создает автоматически SQL-операторы, необходимые для
    // согласования изменений, внесенных в объект DataSet. Однако, если задано
    // свойство SelectCommand объекта DbDataAdapter, то можно создать объект
    // DbCommandBuilder, который будет автоматически создавать SQL-операторы для
    // однотабличных обновлений. В этом случае необходимо установить свойство
    // DataAdapter класса DbCommandBuilder чтобы объект DbCommandBuilder
    // зарегистрировал себя в качестве слушателя для события RowUpdating.
    // Одновременно можно связать друг с другом только один объект DbDataAdapter или
    // DbCommandBuilder.
    DbCommandBuilder builder = factory.CreateCommandBuilder();
    builder.DataAdapter = adapter;
    // Изменение свойства SelectCommand
    // Для создания операторов INSERT, UPDATE или DELETE объект DbCommandBuilder
    // использует свойство SelectCommand для автоматического извлечения нужного
    // набора метаданных. Если изменить свойство SelectCommand после получения
    // метаданных (например, после первого обновления), необходимо обновить
    // метаданные путем вызова метода RefreshSchema. Кроме того, свойство
    // SelectCommand должно возвращать по крайней мере один первичный ключ или
    // уникальный столбец. Если таковые отсутствуют, то создается исключение
    // InvalidOperationException и команды не создаются.
    cmd.CommandText = "select * from person";
    // Обновление схемы
    builder.RefreshSchema();
    // Освобождение ресурсов
    // Если вызывается метод Dispose, объект DbCommandBuilder теряет связь с объектом
    // DbDataAdapter и созданные команды в дальнейшем не используются.
    builder.Dispose();
    // Закрытие подключения к БД
    con.Close();
  }
}