vb.net - 如何在不分散现有数据的情况下将 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