DataTable dt1=new DataTable();dataSet1.Tabels.Add(dt1);DataTable dt2=dt1.Copy();现在我要把dt2放到dataset1中,dataSet1.Tabels.Add(dt2);却提示错误,说已经在dataset中了,为什么?dt2和dt1是两个虽然一样内容,但是他们不是同一个对像啊?如果我想把dt2放进去怎么办?

解决方案 »

  1.   

    什么fill方法?dataset没有fill方法啊?dataset是根据什么判断DataTable已经在dataset里了? DataTable d1 = new DataTable();
                 DataTable d2 = d1.Copy();
                 Console.WriteLine(d1.Equals(d2).ToString());
                 Console.Read();这样的输出是false
      

  2.   

    因为你没给表指定一个NAME 属性 就是名字
     所以都是默认表.会出错
     上面的填充也可以不过都是一个表.
      

  3.   

    dt1.TableName = "dt1"
    dt2.TableName = "dt2"
      

  4.   

    .Copy() 方法返回的应该是个钱拷贝吧!?!
      

  5.   

    Copy()的只是传递的地址的一份拷贝,但对象存储的地址还是没有变。
    是引用类型的
      

  6.   


    DataTable dt1=new DataTable();dt1.TableName = "dt1"dataSet1.Tabels.Add(dt1);DataTable dt2=dt1.Copy(); dt2.TableName = "dt2" dataSet1.Tabels.Add(dt2);
      

  7.   

    dt1.TableName = "dt1" 
    dt2.TableName = "dt2"
      

  8.   


     DataTable d2 = d1.Copy(); 
                Console.WriteLine(d1.Equals(d2).ToString()); 
                Console.Read(); 为什么这样的输出结果是false
      

  9.   

    copy()是浅拷贝。
    所以
    DataTable d2 = d1.Copy(); 
                Console.WriteLine(d1.Equals(d2).ToString()); 
                Console.Read(); 输出结果是false
      

  10.   

    什么是浅copy?能不能具体说一下?
      

  11.   

    DataTable dt1=new DataTable(); 
    dt1.TableName = "dt1" 
    dataSet1.Tabels.Add(dt1); 
    DataTable dt2=dt1.Copy();
    dt2.TableName = "dt2"
    dataSet1.Tabels.Add(dt2);