合并具有相同列但两个都具有一些空单元格的两个数据表

时间:2017-02-16 09:18:19

标签: c# .net datatable

我有两个数据表,比如d1和d2,其列分别为A,B,C,D。

我将数据保存到d1中,并且仅对应于列A,B的单元格与d2类似地填充,仅填充对应于C,D的单元格。我想制作一个具有d1和d2数据的数据表。即,它将具有对应于来自d1和列C的列A,B的数据,来自d2的数据。 我将数据从不同的视图模型填充到d1和d2中,所以这些是有点隔离的。

我的方法:

我将一个数据表(比如说d1)提取到我的目标保存源,现在我只是将对应于列C,D的值从d2放入我的目标保存源,但是它无效。

代码:

DataTable employeeDataTable;
DataTable personalDataTable;
DataTable educationDataTable;

public DataTable GetPersonalDetails(DataTable dataTable1)
{
    personalDataTable   = dataTable1;      
}

public void  EducationDetails(DataTable dataTable)
{
    educationDataTable   = dataTable;
    employeeDataTable = personalDataTable.Copy();
    employeeDataTable.Rows[0]["Graduation"] = educationDataTable.Rows[0]["Graduation"];
    employeeDataTable.Rows[0]["PostGraduation"] = educationDataTable.Rows[0]["PostGraduation"];

    return employeeDataTable;
}

1 个答案:

答案 0 :(得分:0)

在示例中,您只设置Row [0]上的值。也许您只是将其作为测试,但要执行所有需要使用索引i而不是零循环的行,并循环数据表的每一行。

int numRows = employeeDataTable.Rows.Count;

for(int i = 0; i < numRows; ++i)
{
     employeeDataTable.Rows[i]["Graduation"] = educationDataTable.Rows[i]["Graduation"];
     employeeDataTable.Rows[i]["PostGraduation"] = educationDataTable.Rows[i]["PostGraduation"];     
}