DataRow.GetParentRow Method (String, DataRowVersion)


Gets the parent row of a DataRow using the specified RelationName of a DataRelation, and DataRowVersion.

Namespace:   System.Data
Assembly:  System.Data (in System.Data.dll)

public DataRow GetParentRow(
	string relationName,
	DataRowVersion version


Type: System.String

The RelationName of a DataRelation.

Type: System.Data.DataRowVersion

One of the DataRowVersion values.

Return Value

Type: System.Data.DataRow

The parent DataRow of the current row.

Exception Condition

The relation and row do not belong to the same table.


The relation is null.


A child row has multiple parents.


The row does not belong to the table.


The row does not have the requested DataRowVersion.

In a DataSet, the collection of all parent DataRelation objects for the data set is returned by the GetParentRows method.

The DataTable also contains a collection of DataRelation objects, returned by the ParentRelations property.

Use the HasVersion property to determine whether the DataRowVersion that you want exists.

The following example uses the GetParentRow to print a value from each parent row of each DataRow in a DataTable.

private void GetParentRowForTable(DataTable thisTable, 
    string relation, DataRowVersion version)
    if(thisTable ==null){return;}
    // For each row in the table, print column 1 
    // of the parent DataRow.
    DataRow parentRow;
    foreach(DataRow row in thisTable.Rows)
        parentRow = row.GetParentRow(relation, version);
        Console.Write("\t child row: " + row[1]);
        Console.Write("\t parent row: " + parentRow[1]+ "\n");

private void CallGetParentRowForTable()
    // An example of calling the function.
    DataTable thisTable = DataSet1.Tables["Products"];
    DataRelation relation = thisTable.ParentRelations[0];

    // Print only original versions of parent rows.
    GetParentRowForTable(thisTable, relation.RelationName,

.NET Framework
Available since 1.1
Return to top