以下是我的代码。
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也添加了一行。我怎么能避免这种情况。我不知道为什么会这样。
答案 0 :(得分:1)
您可以使用Copy
方法创建相同DataSet
的新副本,而不是仅使用原始副本的参考来避免这种情况:
DataSet ds = dsComplaints.Copy();
从 MSDN DOCS 这是Copy
的作用:
复制此DataSet的结构和数据。
现在,您可以执行复制所需的任何操作,它不会影响DataSet的原始版本。