0 out of 1 rated this helpful - Rate this topic

DataRow.AcceptChanges Method

Commits all the changes made to this row since the last time AcceptChanges was called.

Namespace:  System.Data
Assembly:  System.Data (in System.Data.dll)
public void AcceptChanges()
Exception Condition
RowNotInTableException

The row does not belong to the table.

When invoking AcceptChanges, the EndEdit method is implicitly called to end any edits. If the RowState of the row was Added or Modified, the RowState becomes Unchanged. If the RowState was Deleted, the row is removed.

See the BeginEdit method for more information.

The DataTable class also has an AcceptChanges method which affects changes made to the whole table. For more information and a code example that demonstrates how to accept and reject changes to individual data rows, see AcceptChanges and RejectChanges (ADO.NET).

The following example first creates a new DataTable with one column, and then creates a single DataRow. As the DataRow is created, added, modified, and deleted, its RowState is printed.

private void DemonstrateAcceptChanges()
{
    //Run a function to create a DataTable with one column.
    DataTable table = MakeTable();
    DataRow row;

    // Create a new DataRow.
    row = table.NewRow();
    // Detached row.
    Console.WriteLine("New Row " + row.RowState);

    table.Rows.Add(row);
    // New row.
    Console.WriteLine("AddRow " + row.RowState);

    table.AcceptChanges();
    // Unchanged row.
    Console.WriteLine("AcceptChanges " + row.RowState);

    row["FirstName"] = "Scott";
    // Modified row.
    Console.WriteLine("Modified " + row.RowState);

    row.Delete();
    // Deleted row.
    Console.WriteLine("Deleted " + row.RowState);
}

private DataTable MakeTable()
{
    // Make a simple table with one column.
    DataTable table = new DataTable("table");
    DataColumn fnameColumn = new DataColumn(
        "FirstName", Type.GetType("System.String"));
    table.Columns.Add(fnameColumn);
    return table;
}


Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360, Zune

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0

XNA Framework

Supported in: 3.0, 2.0, 1.0
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
Newbie Warning!

The following code will not update the original database table from which the data-adapter loaded -

DataRow row = myDT.NewRow( );

row[0] = 25;

row[1] =DateTime.Parse( "25/09/2008" );

row[2] ="This is the first line";

myDT.Rows.Add( row );

myDT.AcceptChanges( );

daSQL.Update( myDS.Tables[0] );

The problem lies in the second but last line which you migh be tempted to code to confirm the changes you have inserted.

However, this will prevent the subsequent line from posting any changes to the originating database table.

Hope this prevents you having the hassle I had until I found this little gem - I should have paid more attention to the 'Update' help entry..!