【问题标题】:DataTable.Clear() method affect detached rowDataTable.Clear() 方法影响分离的行
【发布时间】:2015-10-09 07:29:11
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# ado.net strongly-typed-dataset


    【解决方案1】:

    在您的代码中,当您创建新行时,您会使用该行创建对 dataTable 的引用,这就是它清除所有字段的原因。

    您可以使用数据表克隆,这样您将拥有一个深层副本。

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

    这样您将获得仅包含选定行的原始数据表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-16
      • 1970-01-01
      • 2021-09-04
      • 1970-01-01
      • 1970-01-01
      • 2019-10-11
      相关资源
      最近更新 更多