AcceptChangesDuringFill

Свойство предоставляет или устанавливает признак необходимости вызова метода AcceptChanges при добавлении новой строки в DataTable при выполнении любой из операций методом Fill.

Если значение свойства AcceptChangesDuringFill равно true, то добавленные при выполнении метода Fill в DataSet строки будут иметь статус (RowStatus) Unchanged (неизменённые) в противном случае (false) добавленные строки будут иметь статус Added (добавленные).

Т.к. загруженные из БД записи существуют в ней, то они не должны рассматриваться в качестве новых записей, если объект DataSet впоследствии откорректирует их в БД.

Присвоение свойству AcceptChangesDuringFill значения false может быть полезно, например, при копировании данных из одного источника данных в другой. Записи, загружаемые из источника данных, помечаются как New, и DataSet может затем вставить эти записи в другой источник данных с помощью метода Update() из класса DbDataAdapter.

Значение по умолчанию true.

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

Значение true, если метод AcceptChanges вызывается в объекте DataRow; в противном случае – значение false.

Исключения

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

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

class AcceptChangesDuringFillSample
{
  static void Main()
  {
    // Создание фабрики классов провайдера
    DbProviderFactory factory =
      DbProviderFactories.GetFactory("System.Data.LinterClient");
    // Соединение с БД
    DbConnection con = factory.CreateConnection();
    con.ConnectionString =
      "Data Source=LOCAL;User ID=SYSTEM;Password=MANAGER8";
    con.Open();
    // Создание объекта DbCommand
    DbCommand cmd = factory.CreateCommand();
    cmd.Connection = con;
    cmd.CommandText = "select * from auto";
    // Создание нового объекта DataSet для загрузки в него данных
    DataSet ds = new DataSet();
    // Создание объекта DbDataAdapter
    DbDataAdapter da = factory.CreateDataAdapter();
    da.SelectCommand = cmd;
    // Загрузка данных в DataSet
    da.Fill(ds, "auto");
    // Статус всех загруженных строк таблицы auto будет Unchanged
    ds.Tables["auto"].Clear();
    da.AcceptChangesDuringFill = false;
    da.Fill(ds, "auto");
    // Все добавляемые строки будут иметь статус Added
    // Меняем вручную с помощью вызова метода AcceptChanges
    // статус строк на Unchanged
    ds.AcceptChanges();
    // Освобождение ресурсов
    cmd.Dispose();
    con.Dispose();
  }
}