【求助】请问DataTable的Copy方法

yixian2007 2012-03-14 09:29:21
DataTable dtFailArranged = new DataTable();
DataTable dtBackUp = new DataTable();
dtFailArranged = dtTask.Copy();
dtBackUp = dtTask.Copy();

为什么我在dtFailArranged 删除一行,dtBackUp 中的行也相应删除了?Copy()方法不是新建了一个新的实例吗?
如果我想保留一个最初的副本怎么办?
...全文
128 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hwbox 2012-03-14
  • 打赏
  • 举报
回复
出了问题先找自己的原因。datatable的copy就是完全拷贝。

DataTable t = new DataTable();
t.Columns.Add("a",typeof(string));
t.Rows.Add("1");
t.Rows.Add("2");
DataTable t1 = t.Copy();
DataTable t2 = t.Copy();
t1.Rows.RemoveAt(0);
Response.Write (t1.Rows.Count);
Response.Write(t2.Rows.Count);
这段代码打印出1、2。
根本不可能出现你描述的问题。
yixian2007 2012-03-14
  • 打赏
  • 举报
回复
原来是一组相同的DataRow,那复制多少遍也没用了。研究的不够啊,谢谢。
yixian2007 2012-03-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 chinajiyong 的回复:]
引用楼主 yixian2007 的回复:
DataTable dtFailArranged = new DataTable();
DataTable dtBackUp = new DataTable();
dtFailArranged = dtTask.Copy();
dtBackUp = dtTask.Copy();

为什么我在dtFailArranged 删除一行,dtBackU……
[/Quote]

谢谢了,我明白了。
全局变量 2012-03-14
  • 打赏
  • 举报
回复
dtFailArranged = dtTask;
dtBackUp = dtTask.Copy();
dtTask就是初本
dtFailArranged = dtTask.Copy();
dtBackUp = dtTask.Copy();
同时指向dtTask的复制地址

EnForGrass 2012-03-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 yixian2007 的回复:]
DataTable dtFailArranged = new DataTable();
DataTable dtBackUp = new DataTable();
dtFailArranged = dtTask.Copy();
dtBackUp = dtTask.Copy();

为什么我在dtFailArranged 删除一行,dtBackUp 中的行也……
[/Quote]
它具有与该 DataTable 相同的结构(表架构和约束)和数据,與原始表具有相同的一組 DataRows
MSDN
http://msdn.microsoft.com/zh-tw/library/system.data.datatable.copy.aspx
ViewStates 2012-03-14
  • 打赏
  • 举报
回复
我记得datatable中有类似的方法吧。最不济的话貌似有个IMPORTROW的方法也行吧。
yixian2007 2012-03-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yes16ws 的回复:]
dtFailArranged = dtTask.Copy();
dtBackUp = dtTask.Copy().Copy();
[/Quote]

经测试,不行。
全局变量 2012-03-14
  • 打赏
  • 举报
回复
dtFailArranged = dtTask.Copy();
dtBackUp = dtTask.Copy().Copy();
jiuhexuan 2012-03-14
  • 打赏
  • 举报
回复
研究下,深度复制

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧