DataTable.LoadDataRow 方法

定义

查找和更新特定行。 如果找不到任何匹配行,则使用给定值创建新行。

重载

LoadDataRow(Object[], Boolean)

查找和更新特定行。 如果找不到任何匹配行,则使用给定值创建新行。

LoadDataRow(Object[], LoadOption)

查找和更新特定行。 如果找不到任何匹配行,则使用给定值创建新行。

LoadDataRow(Object[], Boolean)

Source:
DataTable.cs
Source:
DataTable.cs
Source:
DataTable.cs

查找和更新特定行。 如果找不到任何匹配行,则使用给定值创建新行。

public:
 System::Data::DataRow ^ LoadDataRow(cli::array <System::Object ^> ^ values, bool fAcceptChanges);
public System.Data.DataRow LoadDataRow (object?[] values, bool fAcceptChanges);
public System.Data.DataRow LoadDataRow (object[] values, bool fAcceptChanges);
member this.LoadDataRow : obj[] * bool -> System.Data.DataRow
Public Function LoadDataRow (values As Object(), fAcceptChanges As Boolean) As DataRow

参数

values
Object[]

用于创建新行的值数组。

fAcceptChanges
Boolean

如果接受更改,则为 true;否则为 false

返回

新的 DataRow

例外

该数组大于表中的列数。

值与其各自的列类型不匹配。

添加行会使约束无效。

尝试将 null 值放到 AllowDBNull 为 false 的列中。

示例

以下示例使用 LoadDataRow 方法尝试查找行。 如果未找到此类行,则使用值创建新行。

using System;
using System.Data;

class MyDataSet {
   public static void Main() {
      DataTable dt = new DataTable();

      DataColumn dc1 = new DataColumn("col1");
      DataColumn dc2 = new DataColumn("col2");
      DataColumn dc3 = new DataColumn("col3");

      dt.Columns.Add(dc1);
      dt.Columns.Add(dc2);
      dt.Columns.Add(dc3);

      // Create an array for the values.
      object[] newRow = new object[3];

      // Set the values of the array.
      newRow[0] = "Hello";
      newRow[1] = "World";
      newRow[2] = "two";
      DataRow row;

      dt.BeginLoadData();

      // Add the new row to the rows collection.
      row = dt.LoadDataRow(newRow, true);

      foreach (DataRow dr in dt.Rows) {
         Console.WriteLine(String.Format("Row: {0}, {1}, {2}", dr["col1"], dr["col2"], dr["col3"]));
      }

      dt.EndLoadData();
   }
}
Imports System.Data

Class MyDataSet
   Public Shared Sub Main()
      Dim dt As New DataTable()

      Dim dc1 As New DataColumn("col1")
      Dim dc2 As New DataColumn("col2")
      Dim dc3 As New DataColumn("col3")

      dt.Columns.Add(dc1)
      dt.Columns.Add(dc2)
      dt.Columns.Add(dc3)

      ' Create an array for the values.
      Dim newRow As Object() = New Object(2) {}

      ' Set the values of the array.
      newRow(0) = "Hello"
      newRow(1) = "World"
      newRow(2) = "two"
      Dim row As DataRow

      dt.BeginLoadData()

      ' Add the new row to the rows collection.
      row = dt.LoadDataRow(newRow, True)

      For Each dr As DataRow In dt.Rows
         Console.WriteLine([String].Format("Row: {0}, {1}, {2}", dr("col1"), dr("col2"), dr("col3")))
      Next

      dt.EndLoadData()
   End Sub
End Class

注解

方法 LoadDataRow 采用值数组,并在主键列 () 中查找匹配的值 (s) 。

如果列具有默认值,请在数组中传递 null 值以设置该列的默认值。 同样,如果列的 AutoIncrement 属性设置为 true,则传递数组中的 null 值以设置行自动生成的值。

fAcceptChanges如果参数已true指定或未指定,则添加新数据,然后AcceptChanges调用 以接受 中的所有DataTable更改;如果参数为 false,则新添加的行将标记为插入,对现有行的更改将标记为修改。

在 或 RowChanging 事件期间ColumnChanging也可能发生异常。 如果发生异常,则不会将该行添加到表中。

LoadDataRowBeginLoadDataEndLoadData结合使用。

另请参阅

适用于

LoadDataRow(Object[], LoadOption)

Source:
DataTable.cs
Source:
DataTable.cs
Source:
DataTable.cs

查找和更新特定行。 如果找不到任何匹配行,则使用给定值创建新行。

public:
 System::Data::DataRow ^ LoadDataRow(cli::array <System::Object ^> ^ values, System::Data::LoadOption loadOption);
public System.Data.DataRow LoadDataRow (object?[] values, System.Data.LoadOption loadOption);
public System.Data.DataRow LoadDataRow (object[] values, System.Data.LoadOption loadOption);
member this.LoadDataRow : obj[] * System.Data.LoadOption -> System.Data.DataRow
Public Function LoadDataRow (values As Object(), loadOption As LoadOption) As DataRow

参数

values
Object[]

用于创建新行的值数组。

loadOption
LoadOption

用于确定数组值如何应用于现有行中的对应值。

返回

新的 DataRow

注解

方法 LoadDataRow 采用值数组,并在主键列 () 中查找匹配的值 (s) 。

如果列具有默认值,请在数组中传递 null 值以设置该列的默认值。 同样,如果列的 AutoIncrement 属性设置为 true,则传递数组中的 null 值以设置行自动生成的值。

参数的值 loadOption 用于确定数组中的值如何应用于现有行。 例如,如果 loadOption 设置为 OverwriteChangesOriginal 则每列的 和 Current 值将替换为传入行中的值, RowState 并将 属性设置为 Unchanged

在 或 RowChanging 事件期间ColumnChanging也可能发生异常。 如果发生异常,则不会将该行添加到表中。

LoadDataRowBeginLoadDataEndLoadData结合使用。

另请参阅

适用于