【问题标题】:function compare 2 columns on 2 csv files and email difference函数比较 2 个 csv 文件的 2 列和电子邮件差异
【发布时间】: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


    【解决方案1】:

    理想情况下,最好在数据库中使用表中的源数据完成此操作,并使用适当的join 变体[左外部等] 通过 SELECT 查询完成比较。结果可以通过您的 VB.NET 代码检索(因为您已在上面使用过)并以您喜欢的格式通过电子邮件发送。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-01
      • 1970-01-01
      • 2019-01-19
      相关资源
      最近更新 更多