14.6 AcceptChangesDuringFill

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 .



ADO. NET in a Nutshell
ADO.NET in a Nutshell
ISBN: 0596003617
EAN: 2147483647
Year: 2005
Pages: 415

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net