DataTable.Clear()方法影响分离的行

本文关键字:分离 影响 方法 Clear DataTable | 更新日期: 2023-09-27 18:16:56

我正在尝试这样做来创建一个类型化数据的副本:

var desRow = dataTable.NewRow();
var sourceRow = dataTable.Rows[rowNum];
desRow.ItemArray = sourceRow.ItemArray.Clone() as object[];

但是当我调用dataTable.Clear()方法时,它清除了desRow中的所有字段。如何创建DataRow的深度副本?

DataTable.Clear()方法影响分离的行

在你的代码中,当你创建你的新行时,你创建了一个对dataTable的引用,这就是为什么它清除所有字段。

你可以使用数据表克隆,这样你就有了一个深度拷贝。

DataTable dt = ...
DataTable cloneDt = dt.Clone();
DataRow row = cloneDt.Rows[number];
dt.Rows.Clear();
dt.Rows.Add(row);