修改本地数据集时修改主数据集
Main dataset is getting modified when local dataset is modified
下面是我的代码。
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。然后我将 table 从 ds 分配给数据 table。我在数据 table 中添加一行(select 投诉)。但是当插入发生时,我的主要数据集,即 dsComplaints 也添加了一行。我怎样才能避免这种情况。我不知道为什么会这样。
您可以使用 Copy
方法创建相同 DataSet
的新副本,而不是仅使用原始副本的引用来避免这种情况:
DataSet ds = dsComplaints.Copy();
来自 MSDN 文档 这就是 Copy
所做的:
Copies both the structure and data for this DataSet.
现在您可以对副本执行任何需要的操作,并且不会影响 DataSet 的原始版本。
下面是我的代码。
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。然后我将 table 从 ds 分配给数据 table。我在数据 table 中添加一行(select 投诉)。但是当插入发生时,我的主要数据集,即 dsComplaints 也添加了一行。我怎样才能避免这种情况。我不知道为什么会这样。
您可以使用 Copy
方法创建相同 DataSet
的新副本,而不是仅使用原始副本的引用来避免这种情况:
DataSet ds = dsComplaints.Copy();
来自 MSDN 文档 这就是 Copy
所做的:
Copies both the structure and data for this DataSet.
现在您可以对副本执行任何需要的操作,并且不会影响 DataSet 的原始版本。