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