The AcceptChangesDuringFill( )
controls whether AcceptChanges( )
is implicitly called on new rows when they are added to a
DataTable
by the Fill( )
method. If AcceptChangesDuringFill
is
true
, the rows added as a result of the
Fill( )
have a RowState
of
Unchanged
after they are added to the
DataSet
. If
AcceptChangesDuringFill
is
false
, the RowState
of the
newly added rows is Added
. The following example
demonstrates this:
// connection and select command strings String connString = "Data Source=(local);Integrated security=SSPI;" + "Initial Catalog=Northwind;"; String selectSql = "SELECT * FROM Orders"; // create a new DataSet to receive the data DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(selectSql, connString); da.Fill(ds, "Orders"); // each row in the Orders table has RowState = Unchanged ds.Tables["Orders"].Clear(); da.AcceptChangesDuringFill = false; da.Fill(ds, "Orders"); // each row in the Orders table has RowState = Inserted // manually call AcceptChanges ds.AcceptChanges(); // each row in the Orders table has RowState = Unchanged
The default value for AcceptChangesDuringFill
is
true
. Because the records already exist in the
data source, the records retrieved during the Fill( )
operation should not be considered new records when the
data source is eventually updated with the
DataSet
.
Setting AcceptChangesDuringFill
to
false
can be useful, for example, to transfer data
between data sources. Records retrieved from a data source are marked
as New
, and the DataSet
can
then insert these records into another data source using the
Update( )
method of a
DataAdapter
.