DataAdapter

Предоставляет или устанавливает объект DbDataAdapter, который связан с объектом DbCommandBuilder (т.е. данное свойство определяет объект DbDataAdapter, для которого автоматически генерируются SQL-запросы обновления таблицы).

Объект DbCommandBuilder регистрирует себя в качестве обработчика событий RowUpdating, которые генерируются объектом DbDataAdapter, указанным в этом свойстве.

Когда создается новый экземпляр объекта DbCommandBuilder, то все связанные с ним объекты DbDataAdapter освобождаются.

Декларация
public DbDataAdapter DataAdapter {get; set;};
Значение свойства

Объект DbDataAdapter.

Исключения

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

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

class CommandBuilderSample
{
  static void Main()
  {
    // Создание фабрики классов провайдера
    DbProviderFactory factory =
      DbProviderFactories.GetFactory("System.Data.LinterClient");
    // Соединение с БД
    DbConnection con = factory.CreateConnection();
    con.ConnectionString = "User ID=SYSTEM;Password=MANAGER8";
    con.Open();
    DbCommand cmd = factory.CreateCommand();
    cmd.CommandText = "select MAKE, PERSONID from AUTO";
    cmd.Connection = con;
    DbDataAdapter adapter = factory.CreateDataAdapter();
    adapter.SelectCommand = cmd;
    // Получение данных из БД
    DataTable dt = new DataTable();
    adapter.Fill(dt);
    // Изменение данных
    dt.Rows[0][0] = DateTime.Now;
    // Связывание объектов DbDataAdapter и DbCommandBuilder
    DbCommandBuilder builder = factory.CreateCommandBuilder();
    builder.DataAdapter = adapter;
    // Обновление данных
    adapter.Update(dt);
    // Отображение сгенерированного запроса
    Console.WriteLine(builder.GetUpdateCommand().CommandText);
    // Освобождение ресурсов
    builder.Dispose();
    // Закрытие подключения к БД
    con.Close();
  }
}

Результат выполнения примера:

UPDATE "SYSTEM"."AUTO" SET "MAKE" = :param1, "PERSONID" = :param2
 WHERE (((:param3 = 1 AND "MAKE" IS NULL) OR ("MAKE" = :param4))
   AND ("PERSONID" = :param5))