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(); } }