【发布时间】:2021-09-13 10:33:42
【问题描述】:
我有一个函数,它比较 2 个 csv 文件的 1 列(csv 数据存储为表),如果项目在两个文件上,则返回一个表。此表将通过电子邮件发送:
CSV 文件一:shop.csv
| CarShop |
|---|
| Toyota |
| Honda |
| Nissan |
CSV 文件二:store.csv
| CarStore |
|---|
| Toyota |
| Opel |
Function Getcarboth(CarShopDT As DataTable, CarStoreDT As DataTable)
Dim emaildt As DataTable = New DataTable()
Dim dc As New DataColumn("Carboth")
emaildt.Columns.Add(dc)
For Each dr As DataRow In CarStoreDT.Rows
Dim carid As String = dr("CarStore")
For Each dr2 As DataRow In CarShopDT.Rows
If carid = dr2("CarShop") Then
Dim drnew As DataRow
drnew = emaildt.NewRow()
drnew("Carboth") = carid
emaildt.Rows.Add(drnew)
End If
Next
Next
If emaildt.Rows.Count > 0 Then
CType(FindControl("email_dg"), DataGrid).DataSource = emaildt
CType(FindControl("email_dg"), DataGrid).DataBind()
sendmail()
End If
End Function
它比较这 2 个表并创建另一个具有差异的表以输出到电子邮件。 当前生成的新表如下 - 因为丰田在两者上:
| Carboth |
|---|
| Toyota |
我正在寻找更改代码(或者可能使用数组重写它?我不确定),因为我在文件中添加了另一列并希望以不同的方式比较两者。
新表格将类似于以下内容:
CSV 文件一:shop.csv
| CarShop | Model |
|---|---|
| Toyota | Hilux |
| Honda | Accord |
| Nissan | GTR |
CSV 文件二:store.csv
| CarStore | Model |
|---|---|
| Toyota | Hilux |
| Honda | Accord |
我想编写代码来比较文件上的两列,并使用 CarStore 文件中不存在的 2 列创建表。 输出表应该是:
| CarDiff | Model |
|---|---|
| Nissan | GTR |
【问题讨论】:
标签: asp.net vb.net function datatable