在数据表中添加行

杰罗布·伯纳多

我正在vb中做一个项目,我试图将dataTable名称dt中的所有行添加到新的dataTable名称dtNew中,但是我不希望在dtNew中添加重复的行,而是如果重复则添加计数。有人请帮我。

这是一个示例数据表名称dt,如您所见,苹果是重复的

样本数据表

这是我的代码。

Dim dtNew As DataTable = New DataTable '---> I Created new DataTable

    '---> Created 3 columns
    dtNew.Columns.Add("TYPE", Type.GetType("System.String"))
    dtNew.Columns.Add("NAME", Type.GetType("System.String"))
    dtNew.Columns.Add("COUNT", Type.GetType("System.Int32"))

    For Each dtRow As DataRow In dt.Rows ' ---> loop all the rows in dt DataTable
        Dim newRow As DataRow = dtNew.NewRow
        newRow("TYPE") = dtRow("TYPE")
        newRow("NAME") = dtRow("NAME")
        newRow("COUNT") = dtRow("COUNT")

        'check if dtNew DataTable has no row
        If Not dtNew Is Nothing AndAlso dtNew.Rows.Count = 0 Then
            'add new row
            dtNew.Rows.Add(newRow)
        Else

            ' I want to check first all the rows in dtNew DataTable 
            ' if its existed, and if it's not then add new row
            For Each dtNewRow As DataRow In dtNew.Rows
                If ((dtNewRow("TYPE") = "VEGETABLE" OrElse _
                    dtNewRow("TYPE") = "FRUIT") And _
                    dtNewRow("NAME") <> newRow("NAME")) Then

                    'insert row
                    dtNew.Rows.InsertAt(newRow, dtNew.Rows.Count)
                    'error: Collection was modified; enumeration operation might not be executed.

                End If
            Next
        End If
    Next
金西尼
For Each row As DataRow In dt.Rows
    Dim type = CStr(row("Type"))
    Dim name = CStr(row("Name"))
    Dim existingRows = dtNew.Select(String.Format("Type = '{0}' AND Name = '{1}'",
                                                  type,
                                                  name))

    If existingRows.Length = 0 Then
        'No match so create a new row.
        Dim newRow = dtNew.NewRow()

        newRow("Type") = type
        newRow("Name") = name
        newRow("Count") = row("Count")

        dtNew.Rows.Add(newRow)
    Else
        'Match found so update existing row.
        Dim newRow = existingRows(0)

        newRow("Count") = CInt(newRow("Count")) + CInt(row("Count"))
    End If
Next

由于表具有相同的架构,因此您甚至可以将代码If简化为

dtNew.ImportRow(row)

如果这只会是一个问题,row有一个RowState比其他Unchanged你不想导入了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在数据表中添加HTML标记添加行

来自分类Dev

在数据表中添加HTML标记添加行

来自分类Dev

无法使用 jquery 数据表在数据表中添加行

来自分类Dev

在数据表中添加行有效,但无法编辑行或内联编辑

来自分类Dev

如何在数据表中添加行-DC.js

来自分类Dev

使用SQL查询在运行时在数据表中添加行

来自分类Dev

在数据表中以编程方式添加行时选择不呈现

来自分类Dev

在数据表中添加边际?

来自分类Dev

如何使用文本框字段ASP.NET在数据表中动态添加行

来自分类Dev

在Django数据表中添加行ID

来自分类Dev

在 Django 中添加行会破坏数据表

来自分类Dev

根据数组在数据库表中添加行

来自分类Dev

数据表无法添加行

来自分类Dev

在数据表中添加图像标签

来自分类Dev

R在数据表中循环添加列

来自分类Dev

在数据表中添加删除和编辑按钮

来自分类Dev

如何在数据表中添加拖放支持?

来自分类Dev

在数据表中添加字段的总和

来自分类Dev

在数据表中添加标签

来自分类Dev

数据表:添加行并检查添加的行的索引

来自分类Dev

数据表:添加行并检查添加的行的索引

来自分类Dev

如何在按钮单击事件中向数据表添加行?

来自分类Dev

如何在SQL Server的数据表中动态添加行

来自分类Dev

如何在angular2数据表中添加行号或序列号

来自分类Dev

jQuery的数据表添加行未定义?

来自分类Dev

数据表在ajax响应内添加行

来自分类Dev

数据表:如何设置选择/突出显示的添加行?

来自分类Dev

在数据表中逐个使用by by

来自分类Dev

在数据表中定义列名