Edit

Share via


DataRow Class

Definition

Represents a row of data in a DataTable.

public class DataRow
[System.Serializable]
public class DataRow
Inheritance
DataRow
Attributes

Examples

The following example creates a new DataRow by calling the NewRow method of the DataTable object.

private void CreateNewDataRow()
{
    // Use the MakeTable function below to create a new table.
    DataTable table;
    table = MakeNamesTable();

    // Once a table has been created, use the
    // NewRow to create a DataRow.
    DataRow row;
    row = table.NewRow();

    // Then add the new row to the collection.
    row["fName"] = "John";
    row["lName"] = "Smith";
    table.Rows.Add(row);

    foreach(DataColumn column in table.Columns)
        Console.WriteLine(column.ColumnName);
    dataGrid1.DataSource=table;
}

private DataTable MakeNamesTable()
{
    // Create a new DataTable titled 'Names.'
    DataTable namesTable = new DataTable("Names");

    // Add three column objects to the table.
    DataColumn idColumn = new  DataColumn();
    idColumn.DataType = System.Type.GetType("System.Int32");
    idColumn.ColumnName = "id";
    idColumn.AutoIncrement = true;
    namesTable.Columns.Add(idColumn);

    DataColumn fNameColumn = new DataColumn();
    fNameColumn.DataType = System.Type.GetType("System.String");
    fNameColumn.ColumnName = "Fname";
    fNameColumn.DefaultValue = "Fname";
    namesTable.Columns.Add(fNameColumn);

    DataColumn lNameColumn = new DataColumn();
    lNameColumn.DataType = System.Type.GetType("System.String");
    lNameColumn.ColumnName = "LName";
    namesTable.Columns.Add(lNameColumn);

    // Create an array for DataColumn objects.
    DataColumn [] keys = new DataColumn [1];
    keys[0] = idColumn;
    namesTable.PrimaryKey = keys;

    // Return the new DataTable.
    return namesTable;
}

Remarks

The DataRow and DataColumn objects are primary components of a DataTable. Use the DataRow object and its properties and methods to retrieve and evaluate; and insert, delete, and update the values in the DataTable. The DataRowCollection represents the actual DataRow objects in the DataTable, and the DataColumnCollection contains the DataColumn objects that describe the schema of the DataTable. Use the overloaded Item[] property to return or set the value of a DataColumn.

Use the HasVersion and IsNull properties to determine the status of a particular row value, and the RowState property to determine the state of the row relative to its parent DataTable.

To create a new DataRow, use the NewRow method of the DataTable object. After creating a new DataRow, use the Add method to add the new DataRow to the DataRowCollection. Finally, call the AcceptChanges method of the DataTable object to confirm the addition. For more information about adding data to a DataTable, see Adding Data to a DataTable.

You can delete a DataRow from the DataRowCollection by calling the Remove method of the DataRowCollection, or by calling the Delete method of the DataRow object. The Remove method removes the row from the collection. In contrast, Delete marks the DataRow for removal. The actual removal occurs when you call AcceptChanges method. By calling Delete, you can programmatically check which rows are marked for removal before actually deleting them. For more information, see DataRow Deletion.

Constructors

DataRow(DataRowBuilder)

Initializes a new instance of the DataRow class using the specified builder. Only for internal usage.

Properties

HasErrors

Gets a value that indicates whether there are errors in a row.

Item[DataColumn, DataRowVersion]

Gets the specified version of data stored in the specified DataColumn.

Item[DataColumn]

Gets or sets the data stored in the specified DataColumn.

Item[Int32, DataRowVersion]

Gets the data stored in the column, specified by index and version of the data to retrieve.

Item[Int32]

Gets or sets the data stored in the column specified by index.

Item[String, DataRowVersion]

Gets the specified version of data stored in the named column.

Item[String]

Gets or sets the data stored in the column specified by name.

ItemArray

Gets or sets all the values for this row through an array.

RowError

Gets or sets the custom error description for a row.

RowState

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

Table

Gets the DataTable for which this row has a schema.

Methods

AcceptChanges()

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

BeginEdit()

Starts an edit operation on a DataRow object.

CancelEdit()

Cancels the current edit on the row.

ClearErrors()

Clears the errors for the row. This includes the RowError and errors set with SetColumnError(Int32, String).

Delete()

Deletes the DataRow.

EndEdit()

Ends the edit occurring on the row.

Equals(Object)

Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetChildRows(DataRelation, DataRowVersion)

Gets the child rows of a DataRow using the specified DataRelation, and DataRowVersion.

GetChildRows(DataRelation)

Gets the child rows of this DataRow using the specified DataRelation.

GetChildRows(String, DataRowVersion)

Gets the child rows of a DataRow using the specified RelationName of a DataRelation, and DataRowVersion.

GetChildRows(String)

Gets the child rows of a DataRow using the specified RelationName of a DataRelation.

GetColumnError(DataColumn)

Gets the error description of the specified DataColumn.

GetColumnError(Int32)

Gets the error description for the column specified by index.

GetColumnError(String)

Gets the error description for a column, specified by name.

GetColumnsInError()

Gets an array of columns that have errors.

GetHashCode()

Serves as the default hash function.

(Inherited from Object)
GetParentRow(DataRelation, DataRowVersion)

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

GetParentRow(DataRelation)

Gets the parent row of a DataRow using the specified DataRelation.

GetParentRow(String, DataRowVersion)

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

GetParentRow(String)

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

GetParentRows(DataRelation, DataRowVersion)

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

GetParentRows(DataRelation)

Gets the parent rows of a DataRow using the specified DataRelation.

GetParentRows(String, DataRowVersion)

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

GetParentRows(String)

Gets the parent rows of a DataRow using the specified RelationName of a DataRelation.

GetType()

Gets the Type of the current instance.

(Inherited from Object)
HasVersion(DataRowVersion)

Gets a value that indicates whether a specified version exists.

IsNull(DataColumn, DataRowVersion)

Gets a value that indicates whether the specified DataColumn and DataRowVersion contains a null value.

IsNull(DataColumn)

Gets a value that indicates whether the specified DataColumn contains a null value.

IsNull(Int32)

Gets a value that indicates whether the column at the specified index contains a null value.

IsNull(String)

Gets a value that indicates whether the named column contains a null value.

MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
RejectChanges()

Rejects all changes made to the row since AcceptChanges() was last called.

SetAdded()

Changes the RowState of a DataRow to Added.

SetColumnError(DataColumn, String)

Sets the error description for a column specified as a DataColumn.

SetColumnError(Int32, String)

Sets the error description for a column specified by index.

SetColumnError(String, String)

Sets the error description for a column specified by name.

SetModified()

Changes the RowState of a DataRow to Modified.

SetNull(DataColumn)

Sets the value of the specified DataColumn to a null value.

SetParentRow(DataRow, DataRelation)

Sets the parent row of a DataRow with specified new parent DataRow and DataRelation.

SetParentRow(DataRow)

Sets the parent row of a DataRow with specified new parent DataRow.

ToString()

Returns a string that represents the current object.

(Inherited from Object)

Extension Methods

Field<T>(DataRow, DataColumn, DataRowVersion)

Provides strongly-typed access to each of the column values in the specified row. The Field<T>(DataRow, DataColumn, DataRowVersion) method also supports nullable types.

Field<T>(DataRow, DataColumn)

Provides strongly-typed access to each of the column values in the specified row. The Field<T>(DataRow, DataColumn) method also supports nullable types.

Field<T>(DataRow, Int32, DataRowVersion)

Provides strongly-typed access to each of the column values in the specified row. The Field<T>(DataRow, Int32, DataRowVersion) method also supports nullable types.

Field<T>(DataRow, Int32)

Provides strongly-typed access to each of the column values in the specified row. The Field<T>(DataRow, Int32) method also supports nullable types.

Field<T>(DataRow, String, DataRowVersion)

Provides strongly-typed access to each of the column values in the specified row. The Field<T>(DataRow, String, DataRowVersion) method also supports nullable types.

Field<T>(DataRow, String)

Provides strongly-typed access to each of the column values in the specified row. The Field<T>(DataRow, String) method also supports nullable types.

SetField<T>(DataRow, DataColumn, T)

Sets a new value for the specified column in the DataRow. The SetField<T>(DataRow, DataColumn, T) method also supports nullable types.

SetField<T>(DataRow, Int32, T)

Sets a new value for the specified column in the DataRow the method is called on. The SetField<T>(DataRow, Int32, T) method also supports nullable types.

SetField<T>(DataRow, String, T)

Sets a new value for the specified column in the DataRow. The SetField<T>(DataRow, String, T) method also supports nullable types.

Applies to

Product Versions
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Thread Safety

This type is safe for multithreaded read operations. You must synchronize any write operations.

See also