C# 把DataTable dt1,DataTable dt2,DataTable dt3,Datatable dt4里面相同的序列号的相关的数据用代码提取出来组成一行,一行一行组合,组成一个新的表,然后再和界面显示控件绑定
时间: 2023-12-17 22:02:51 浏览: 103
可以通过以下步骤实现:
1. 定义一个新的 DataTable,用于存储提取出来的数据。
2. 遍历 dt1,对于其中的每一行,获取序列号,并在 dt2、dt3、dt4 中查找对应的行,如果找到了,则将四个 DataTable 中相关的数据组成一个新的 DataRow,并添加到新的 DataTable 中。
3. 将新的 DataTable 绑定到界面显示控件上。
以下是示例代码:
```csharp
// 定义新的 DataTable
DataTable newTable = new DataTable();
newTable.Columns.Add("序列号");
newTable.Columns.Add("dt1数据");
newTable.Columns.Add("dt2数据");
newTable.Columns.Add("dt3数据");
newTable.Columns.Add("dt4数据");
// 遍历 dt1
foreach (DataRow row1 in dt1.Rows)
{
// 获取序列号
string serialNumber = row1["序列号"].ToString();
// 在 dt2、dt3、dt4 中查找对应的行
DataRow[] rows2 = dt2.Select($"[序列号] = '{serialNumber}'");
DataRow[] rows3 = dt3.Select($"[序列号] = '{serialNumber}'");
DataRow[] rows4 = dt4.Select($"[序列号] = '{serialNumber}'");
// 如果找到了,则将四个 DataTable 中相关的数据组成一个新的 DataRow,并添加到新的 DataTable 中
if (rows2.Length > 0 && rows3.Length > 0 && rows4.Length > 0)
{
DataRow newRow = newTable.NewRow();
newRow["序列号"] = serialNumber;
newRow["dt1数据"] = row1["相关数据"];
newRow["dt2数据"] = rows2[0]["相关数据"];
newRow["dt3数据"] = rows3[0]["相关数据"];
newRow["dt4数据"] = rows4[0]["相关数据"];
newTable.Rows.Add(newRow);
}
}
// 将新的 DataTable 绑定到界面显示控件上
dataGridView.DataSource = newTable;
```
阅读全文