2 out of 6 rated this helpful - Rate this topic

DataRow.RowState Property

Gets the current state of the row with regard to its relationship to the DataRowCollection.

Namespace:  System.Data
Assembly:  System.Data (in System.Data.dll)
public DataRowState RowState { get; }

Property Value

Type: System.Data.DataRowState
One of the DataRowState values.

The value of the RowState depends on two factors: the kind of operation has been performed on the row, and whether AcceptChanges has been called on the DataRow.

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 DemonstrateRowState()
{
    // 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 dcFirstName = new DataColumn(
        "FirstName", Type.GetType("System.String"));
    table.Columns.Add(dcFirstName);
    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
RowState is set to Modified when assignment is done with the same value
RowState will change to Modified if the contents of a field are assigned, even if the value assigned is identical to the current value.
Problem with removing row
I had a DataGridView and wanted to delete rows. So far, so good.
Then, i want to do something with the selected rows in the DGV. An exception occured saying that i cannot access deleted row information. As all elements in the DataGridView.SelectedRows Collection are of the type DataGridViewRow i do not have access to the rowState property. If you want to prevent the exception when accessing the SelectedRows collection you have to do something like this:

For Each dr As DataGridViewRow In DataGridView1.SelectedRows
If Not CType(dr.DataBoundItem, DataRowView) Is Nothing AndAlso _
CType(dr.DataBoundItem, DataRowView).Row.RowState = DataRowState.Deleted Then _
lngListOfIDs.Add(CLng(CType(dr.DataBoundItem, DataRowView).Row.Item("ID")))
Next

KR