查找重复项并在新的datagridview中显示 [英] Find duplicats and display in new datagridview

查看:77
本文介绍了查找重复项并在新的datagridview中显示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个datagridviews:

I have two datagridviews:

DataGridView1:
这是使用以下代码从csv文件生成的:

DataGridView1: This is generated from a csv file with this code:

For Each line As String In System.IO.File.ReadAllLines("C:\path\test.csv")
                Form1.DataGriView1.Rows.Add(line.Split(";"))
 Next

.csv文件具有以下格式:

The.csv file has this format:

12345; SOME TEXT; 2000000; 12345678901; 2014-07-31;

12345;SOME TEXT;2000000;12345678901;2014-07-31;

23456; SOME TEXT; 2000000; 10987654321; 2014-07-11;

23456;SOME TEXT;2000000;10987654321;2014-07-11;

DataGridView2
这是从具有以下代码的excel文件生成:

DataGridView2 This is generated from an excel file with this code:

 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列,带有标题。

The Excel document has 6 columns, with headers.

我需要查找重复项并在第三个gridview中显示数据。具体来说,我想看看DataGridView1的column1列中的值是否在DataGridView2的polnr列中。如果可以,我希望将DataGridView的整个行复制到DataGridView3

I need to find duplicates and display the data in a third gridview. Specifically, I want to see if the value in column column1 in DataGridView1 are in column polnr in DataGridView2. If it does, I want the entire line from DataGridView copied to DataGridView3

是的,我自己尝试了一下并在整个Internet上进行了搜索。有人可以帮我吗?

Yes, I have tried it myself and searched through the whole internet. Can someone help me?

推荐答案

这应该与dgv 1 + 3不受约束

this should work with dgv 1 + 3 being unbound

    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

这篇关于查找重复项并在新的datagridview中显示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆