修改本地数据集时,主数据集将被修改

时间:2018-03-11 09:42:34

标签: c# datatables dataset windows-applications

以下是我的代码。

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是全局声明的,具有主数据。我将它复制到本地DataSet ds。然后我将ds中的表分配给数据表。我在数据表中添加了一行(选择投诉)。但是当插入发生时,我的主数据集即dsComplaints也添加了一行。我怎么能避免这种情况。我不知道为什么会这样。

1 个答案:

答案 0 :(得分:1)

您可以使用Copy方法创建相同DataSet的新副本,而不是仅使用原始副本的参考来避免这种情况:

DataSet ds = dsComplaints.Copy();

MSDN DOCS 这是Copy的作用:

  

复制此DataSet的结构和数据。

现在,您可以执行复制所需的任何操作,它不会影响DataSet的原始版本。