2014-03-04 40 views
0

我有两个DataTable DT1有标识countryID DT2有网址和标识添加两个数据表中具有独特的列

我想补充这两个databales 如果我使用

foreach (DataColumn col in dt.Columns) 
{ 
    dt1.Columns.Add(col.ColumnName, col.DataType); 
} 

越来越像列错误网址已经属于另一个数据库 请帮助我如何添加这两个表格

回答

1

您需要复制像ColumnName这样的属性并创建新的DataColumns

出现此错误是因为DataTablereference保留为其列,并且每列都包含reference它的DataTable。

0

如果你的目标是建立一个单一的DataTable有三列(IdCountryIdUrl),只需创建每个Id列主键,只需拨打dt1.Merge(dt2)

例子:

var dt1 = new DataTable(); 
var id1 = dt1.Columns.Add("Id"); 
dt1.Columns.Add("CountryId"); 
dt1.PrimaryKey = new []{id1}; 
dt1.Rows.Add(new []{"1", "Austria"}); 
dt1.Rows.Add(new []{"2", "Iceland"}); 

var dt2 = new DataTable(); 
var id2 = dt2.Columns.Add("Id"); 
dt2.Columns.Add("Url"); 
dt2.PrimaryKey = new []{id2}; 
dt2.Rows.Add(new []{"1", "www.austria.at"}); 
dt2.Rows.Add(new []{"2", "www.iceland.is"}); 

dt1.Merge(dt2); 

dt1现在看起来像:

enter image description here

+0

感谢多米尼克.. – MuthuKumar

+0

我有一个疑问,我们才能建立外键的数据表中手动 – MuthuKumar

+0

你不需要一个外键,但是一个主键。是的,你可以像我在上面的代码示例中那样手动设置它。 – sloth

相关问题