我有两个datagridviews:
DataGridView1: 这是使用以下代码从csv文件生成的:
For Each line As String In System.IO.File.ReadAllLines("C:\path\test.csv")
Form1.DataGriView1.Rows.Add(line.Split(";"))
Next
The.csv文件具有以下格式:
12345;有些文字; 2000000; 12345678901; 2014-07-31;
23456;有些文字; 2000000; 10987654321; 2014-07-11;
DataGridView2 这是使用以下代码生成的excel文件:
Dim MyConnection As System.Data.OleDb.OleDbConnection
Dim DtSet As System.Data.DataSet
Dim MyCommand As System.Data.OleDb.OleDbDataAdapter
MyConnection = New System.Data.OleDb.OleDbConnection _
("provider=Microsoft.Jet.OLEDB.4.0; Data Source='C:\Users\path\excel.xls'; Extended Properties=Excel 8.0;")
MyCommand = New System.Data.OleDb.OleDbDataAdapter _
("select * from [Sheet$]", MyConnection)
DtSet = New System.Data.DataSet
MyCommand.Fill(DtSet)
Form1.DataGridView2.DataSource = DtSet.Tables(0)
MyConnection.Close()
Excel文档有6列,带有标题。
我需要找到重复项并在第三个gridview中显示数据。具体来说,我想看看DataGridView1中列column1中的值是否在DataGridView2中的列polnr中。如果是这样,我希望将DataGridView中的整行复制到DataGridView3
是的,我自己尝试过并在整个互联网上搜索过。有人能帮助我吗?
答案 0 :(得分:1)
这应该适用于未绑定的dgv 1 + 3
Dim rowlist As New ArrayList
Dim dgv3row As New DataGridViewRow
For Each dgv1row As DataGridViewRow In DataGridView1.Rows
For Each dgv2row As DataGridViewRow In DataGridView2.Rows
If dgv1row.Cells("Column1").Value = dgv2row.Cells("polnr").Value Then
For Each dgvcell As DataGridViewCell In dgv1row.Cells
rowlist.Add(dgvcell.Value)
Next
If rowlist.Count > 0 Then
Dim dgv3rowindex As Integer = DataGridView3.Rows.Add()
dgv3row = DataGridView3.Rows(dgv3rowindex)
For Each dgv3cell As DataGridViewCell In dgv3row.Cells
dgv3cell.Value = rowlist(dgv3cell.ColumnIndex)
Next
rowlist.Clear()
End If
End If
Next
Next