DataRow 类

定义

表示 DataTable 中的一行数据。

public ref class DataRow
public class DataRow
[System.Serializable]
public class DataRow
type DataRow = class
[<System.Serializable>]
type DataRow = class
Public Class DataRow
继承
DataRow
属性

示例

以下示例通过调用NewRow对象的方法DataTable创建新的DataRow方法。

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;
}
Private Sub CreateNewDataRow()
    ' Use the MakeTable function below to create a new table.
    Dim table As DataTable
    table = MakeNamesTable()

    ' Once a table has been created, use the 
    ' NewRow to create a DataRow.
    Dim row As DataRow 
    row = table.NewRow()

    ' Then add the new row to the collection.
    row("fName") = "John"
    row("lName") = "Smith"
    table.Rows.Add(row)
    
    Dim column As DataColumn
    For Each column in table.Columns
       Console.WriteLine(column.ColumnName)
    Next
    DataGrid1.DataSource=table
 End Sub
 
 Private Function MakeNamesTable() As DataTable
    ' Create a new DataTable titled 'Names.'
    Dim namesTable As New DataTable("Names") 

    ' Add three column objects to the table.
    Dim idColumn As New DataColumn()
    idColumn.DataType = System.Type.GetType("System.Int32")
    idColumn.ColumnName = "id"
    idColumn.AutoIncrement = True
    namesTable.Columns.Add(idColumn)

    Dim fNameColumn As New DataColumn()
    fNameColumn.DataType = System.Type.GetType("System.String")
    fNameColumn.ColumnName = "Fname"
    fNameColumn.DefaultValue = "Fname"
    namesTable.Columns.Add(fNameColumn)

    Dim lNameColumn As New DataColumn()
    lNameColumn.DataType = System.Type.GetType("System.String")
    lNameColumn.ColumnName = "LName"
    namesTable.Columns.Add(lNameColumn)

    ' Create an array for DataColumn objects.
    Dim keys(0) As DataColumn 
    keys(0) = idColumn
    namesTable.PrimaryKey = keys

    ' Return the new DataTable.
    MakeNamesTable = namesTable
 End Function

注解

DataRowDataColumn对象是 a DataTable. 的主要组件。 DataRow使用对象及其属性和方法检索和计算;并在其中插入、删除和更新值DataTable。 表示DataRowCollection其中DataTable的实际DataRow对象,并DataColumnCollection包含DataColumn描述架构的对象DataTable。 使用重载 Item[] 属性返回或设置值 DataColumn

HasVersion使用和IsNull属性确定特定行值的状态,以及RowState用于确定相对于其父DataTable行的行的状态的属性。

若要创建新 DataRow对象,请使用 NewRow 该对象的方法 DataTable 。 创建新DataRow后,使用Add该方法将新DataRow内容添加到 。DataRowCollection 最后,调用 AcceptChanges 对象的方法来 DataTable 确认添加。 有关将数据添加到 a DataTable的详细信息,请参阅 将数据添加到 DataTable

可以通过调用对象的方法DataRowCollection或调用Delete对象的方法DataRowDataRowCollection中删除 aDataRowRemove 该方法 Remove 从集合中删除该行。 相比之下, Delete 标记 DataRow 要删除的内容。 调用 AcceptChanges 方法时将发生实际删除。 通过调用 Delete,可以编程方式检查哪些行被标记为删除,然后再实际删除它们。 有关详细信息,请参阅 DataRow 删除

构造函数

DataRow(DataRowBuilder)

使用指定的生成器初始化 DataRow 类的新实例。 仅限内部使用。

属性

HasErrors

获取一个值,该值指示某行是否包含错误。

Item[DataColumn, DataRowVersion]

获取指定 DataColumn 中存储的数据的指定版本。

Item[DataColumn]

获取或设置指定 DataColumn 中存储的数据。

Item[Int32, DataRowVersion]

获取由索引和要检索的数据版本指定的列中存储的数据。

Item[Int32]

获取或设置由索引指定的列中存储的数据。

Item[String, DataRowVersion]

获取指定列中存储的数据的指定版本。

Item[String]

获取或设置由名称指定的列中存储的数据。

ItemArray

通过数组获取或设置此行的所有值。

RowError

获取或设置行的自定义错误说明。

RowState

获取与该行和 DataRowCollection 的关系相关的当前状态。

Table

获取该行拥有其架构的 DataTable

方法

AcceptChanges()

提交自上次调用 AcceptChanges() 以来对该行进行的所有更改。

BeginEdit()

DataRow 对象启动编辑操作。

CancelEdit()

取消当前对该行进行的编辑。

ClearErrors()

清除该行的错误。 这包括 RowErrorSetColumnError(Int32, String) 的错误设置。

Delete()

删除 DataRow

EndEdit()

终止该行的编辑。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetChildRows(DataRelation)

使用指定的 DataRelation 获取此 DataRow 的子行。

GetChildRows(DataRelation, DataRowVersion)

使用指定的 DataRelationDataRowVersion 获取 DataRow 的子行。

GetChildRows(String)

使用 DataRelation 的指定 RelationName 获取 DataRow 的子行。

GetChildRows(String, DataRowVersion)

使用 DataRelation 的指定 RelationNameDataRowVersion获取 DataRow 的子行。

GetColumnError(DataColumn)

获取指定 DataColumn 的错误说明。

GetColumnError(Int32)

获取由索引指定的列的错误说明。

GetColumnError(String)

获取由名称指定的列的错误说明。

GetColumnsInError()

获取由包含错误的列组成的数组。

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetParentRow(DataRelation)

使用指定的 DataRelation 获取 DataRow 的父行。

GetParentRow(DataRelation, DataRowVersion)

使用指定的 DataRelationDataRowVersion 获取 DataRow 的父行。

GetParentRow(String)

使用 DataRelation 的指定 RelationName 获取 DataRow 的父行。

GetParentRow(String, DataRowVersion)

使用 DataRelation 的指定 RelationNameDataRowVersion 获取 DataRow 的父行。

GetParentRows(DataRelation)

使用指定的 DataRelation 获取 DataRow 的父行。

GetParentRows(DataRelation, DataRowVersion)

使用指定的 DataRelationDataRowVersion 获取 DataRow 的父行。

GetParentRows(String)

使用 DataRelation 的指定 RelationName 获取 DataRow 的父行。

GetParentRows(String, DataRowVersion)

使用 DataRelation 的指定 RelationNameDataRowVersion 获取 DataRow 的父行。

GetType()

获取当前实例的 Type

(继承自 Object)
HasVersion(DataRowVersion)

获取一个值,该值指示指定的版本是否存在。

IsNull(DataColumn)

获取一个值,该值指示指定的 DataColumn 是否包含 null 值。

IsNull(DataColumn, DataRowVersion)

获取一个值,该值指示指定的 DataColumnDataRowVersion 是否包含 null 值。

IsNull(Int32)

获取一个值,该值指示位于指定索引处的列是否包含 null 值。

IsNull(String)

获取一个值,该值指示指定的列是否包含 null 值。

MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
RejectChanges()

拒绝自上次调用 AcceptChanges() 以来进行的所有更改。

SetAdded()

DataRowRowState 更改为 Added

SetColumnError(DataColumn, String)

为指定为 DataColumn 的列设置错误说明。

SetColumnError(Int32, String)

为由索引指定的列设置错误说明。

SetColumnError(String, String)

为由名称指定的列设置错误说明。

SetModified()

DataRowRowState 更改为 Modified

SetNull(DataColumn)

将指定 DataColumn 的值设置为 null 值。

SetParentRow(DataRow)

使用指定的新父 DataRow 设置 DataRow 的父行。

SetParentRow(DataRow, DataRelation)

使用指定的新父 DataRowDataRelation 设置 DataRow 的父行。

ToString()

返回表示当前对象的字符串。

(继承自 Object)

扩展方法

Field<T>(DataRow, DataColumn)

为指定行中的每个列值提供强类型访问。 Field<T>(DataRow, DataColumn) 方法还支持可以为 null 的类型。

Field<T>(DataRow, DataColumn, DataRowVersion)

为指定行中的每个列值提供强类型访问。 Field<T>(DataRow, DataColumn, DataRowVersion) 方法还支持可以为 null 的类型。

Field<T>(DataRow, Int32)

为指定行中的每个列值提供强类型访问。 Field<T>(DataRow, Int32) 方法还支持可以为 null 的类型。

Field<T>(DataRow, Int32, DataRowVersion)

为指定行中的每个列值提供强类型访问。 Field<T>(DataRow, Int32, DataRowVersion) 方法还支持可以为 null 的类型。

Field<T>(DataRow, String)

为指定行中的每个列值提供强类型访问。 Field<T>(DataRow, String) 方法还支持可以为 null 的类型。

Field<T>(DataRow, String, DataRowVersion)

为指定行中的每个列值提供强类型访问。 Field<T>(DataRow, String, DataRowVersion) 方法还支持可以为 null 的类型。

SetField<T>(DataRow, DataColumn, T)

DataRow 中的指定列设置一个新值。 SetField<T>(DataRow, DataColumn, T) 方法还支持可以为 null 的类型。

SetField<T>(DataRow, Int32, T)

为在其上调用此方法的 DataRow 中的指定列设置一个新值。 SetField<T>(DataRow, Int32, T) 方法还支持可以为 null 的类型。

SetField<T>(DataRow, String, T)

DataRow 中的指定列设置一个新值。 SetField<T>(DataRow, String, T) 方法还支持可以为 null 的类型。

适用于

线程安全性

此类型对于多线程读取操作是安全的。 必须同步任何写入操作。

另请参阅