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