如何在不分散现有数据的情况下将CSV数据合并到datagridview中

时间:2019-06-04 21:51:30

标签: vb.net

我有一个小的cv数据文件,具有7列,最初是6行。第一列是排名(1-6)。第二列是键。其余列标识键的属性...大小,重量,颜色等。我在datagridview控件中显示第一个csv文件。一个星期后,我通过从新的csv文件向第8列添加新的排名数据来追加datagridview显示,该新的csv文件具有与第一个csv文件(第2列)相同的项(但顺序不同)。但是,第二个csv文件还有一个附加项目,该项目可能是新scv文件的任何行。应该将其与新的键(对于第2列)一起放置在datagridview的第7行中,并将其与其他列的大小,重量,颜色等相关联的值放置在该数据网格中。

我的问题是:如何在不破坏datagridview上已经显示的数据的情况下,将具有新键和相关属性的新项(row7)添加到datagridview控件中?

以下代码可用于使用其键更新相同的项目,但不会使用新的键和关联的数据添加新项目。第一个代码列表用于加载第一个csv文件

Using MR As New TextFieldParser(newFile)
        Dim currentRow As String()
        MR.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited
        MR.Delimiters = New String() {","}
        While Not MR.EndOfData
            Try
                Dgv1.Rows.Add()
                currentRow = MR.ReadFields()
                Dgv1(1, rd).Value = currentRow(1)
                Dgv1(2, rd).Value = currentRow(2)
                Dgv1(3, rd).Value = currentRow(3)
                Dgv1(4, rd).Value = currentRow(4)
                Dgv1(5, rd).Value = currentRow(5)
                Dgv1(6, rd).Value = currentRow(0)
                rd += 1
            Catch ex As Exception

            End Try
        End While
    End Using

更新按钮代码

Using MR As New TextFieldParser(newFile)
        Dim currentRow As String()
        MR.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited
        MR.Delimiters = New String() {","}
        While Not MR.EndOfData
            Try
                currentRow = MR.ReadFields()
                For re = 0 To Dgv1.RowCount - 1
                    If Dgv1(1, re).Value = currentRow(1) Then
                        Dgv1(7, re).Value = currentRow(0)
                    End If
                Next
            Catch ex As Exception
            End Try
        End While
    End Using

0 个答案:

没有答案