首页 > 解决方案 > 如何在不分散现有数据的情况下将 csv 数据合并到 datagridview 中

问题描述

我有一个包含 7 列和最初 6 行的小型 csv 数据文件。第一列是排名(1-6)。第二列是键。其余列标识键的属性...大小、重量、颜色等。我在 datagridview 控件中显示第一个 csv 文件。一周后,我通过将新的排名数据添加到新 csv 文件的第 8 列中来附加 datagridview 显示,该新 csv 文件具有与第一个 csv 文件(第 2 列)中相同的键(不同顺序)的相同项目。但是,第二个 csv 文件有一个附加项,它可能是新 scv 文件的任何行。它应该与它的新键(对于第 2 列)以及其他列的大小、重量、颜色等相关值一起放在 datagridview 的第 7 行。

我的问题是:如何将新项目(row7)添加到 datagridview 控件及其新键和关联属性,而不会破坏已显示在 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

标签: vb.net

解决方案


推荐阅读