C# 把DataTable dt1,DataTable dt2,DataTable dt3,Datatable dt4里面相同的序列号的相关的数据用代码提取出来组成一行,一行一行组合,组成一个新的表,然后再和界面显示控件绑定
时间: 2023-12-17 08:02:42 浏览: 72
创建DataTable结构,添加、删除数据,绑定显示在dataGridView控件上
5星 · 资源好评率100%
以下是一个示例代码,可以实现将多个 DataTable 中相同序列号的数据提取出来组成新的表,并绑定到控件上:
```
// 假设序列号列名为 "序列号"
// 假设需要显示的列名为 "列1" 和 "列2"
// 创建一个新的 DataTable,用于存储合并后的数据
DataTable dtResult = new DataTable();
dtResult.Columns.Add("序列号");
dtResult.Columns.Add("列1");
dtResult.Columns.Add("列2");
// 遍历第一个 DataTable,将每一行的序列号和对应的列1和列2值添加到新的 DataTable 中
foreach (DataRow row1 in dt1.Rows)
{
string serialNumber = row1["序列号"].ToString();
string value1 = row1["列1"].ToString();
string value2 = row1["列2"].ToString();
DataRow newRow = dtResult.NewRow();
newRow["序列号"] = serialNumber;
newRow["列1"] = value1;
newRow["列2"] = value2;
dtResult.Rows.Add(newRow);
}
// 遍历其他的 DataTable,将每一行的序列号和对应的列1和列2值添加到新的 DataTable 中
// 如果序列号已经存在于新的 DataTable 中,则将对应的列1和列2值更新为最新的值
foreach (DataTable dt in new DataTable[] { dt2, dt3, dt4 })
{
foreach (DataRow row in dt.Rows)
{
string serialNumber = row["序列号"].ToString();
string value1 = row["列1"].ToString();
string value2 = row["列2"].ToString();
DataRow existingRow = dtResult.Rows.Find(serialNumber);
if (existingRow != null)
{
existingRow["列1"] = value1;
existingRow["列2"] = value2;
}
else
{
DataRow newRow = dtResult.NewRow();
newRow["序列号"] = serialNumber;
newRow["列1"] = value1;
newRow["列2"] = value2;
dtResult.Rows.Add(newRow);
}
}
}
// 将新的 DataTable 绑定到控件上
yourControl.DataSource = dtResult;
```
需要注意的是,以上代码中的 `yourControl` 应该是一个支持数据绑定的控件,例如 DataGridView。如果你要将数据绑定到其他类型的控件上,可能需要进行一些调整。
阅读全文