代码之家  ›  专栏  ›  技术社区  ›  user3004443

修改本地数据集时正在修改主数据集

  •  0
  • user3004443  · 技术社区  · 8 年前

    下面是我的代码。

    DataSet ds = new DataSet();
    ds = dsComplaints;
    DataTable dt = new DataTable();
    dt = ds.Tables[0];
    DataRow dr = dt.NewRow();
    dr.ItemArray = new object[] {"--Select Complaint--" };
    dt.Rows.InsertAt(dr, 0);
    

    dsComplaints是全球公布的,其中包含主要数据。我正在将其复制到本地数据集ds。然后我将ds中的表分配给datatable。我正在数据表中添加一行(选择投诉)。但当插入时,我的主数据集(即dsComplaints)也会添加一行。我怎样才能避免这种情况。我不知道为什么会这样。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Ehsan Sajjad    8 年前

    您可以使用 Copy 方法创建相同的新副本 DataSet 不要仅使用原始参考来避免此问题:

    DataSet ds = dsComplaints.Copy();
    

    从…起 MSDN文档 这是什么 复制 做:

    复制此数据集的结构和数据。

    现在,您可以对副本执行任何需要的操作,并且不会影响数据集的原始版本。