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

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

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

可以通过调用 Remove 的 方法DataRowCollection或调用 Delete 对象的 方法DataRow,从 DataRowCollection 中删除 DataRow 。 方法 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 的类型。

适用于

线程安全性

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

另请参阅