none
Comparando Duas Datagridview RRS feed

  • Discussão Geral

  • Olá Pessoal, sou muito iniciante no vb.net

    estou fazendo uma aplicação para que possa comparar valores se esta correto no banco de dados.

    tenho duas datagridwiew, onde a 01 lista um arquivo de texto

    e outra lista uma um select no banco slq server.

    minha dificuldade é pegar os valores da primeira linha  da datagridview1 carregada pelo texto e buscar este valor na datagridview2 carregada pelo banco e se verdadeiro deixar em uma cor diferenciada.

    ou seja comparando os valores da datagridview1 na datagridview2 para localizar o que esta divergente no banco de dados.

    • Tipo Alterado Giovani Cr segunda-feira, 31 de março de 2014 20:38
    quarta-feira, 26 de março de 2014 14:35

Todas as Respostas

  • Olá jolanjhones,

    considerando que a linha 1 da grid 2 se refere a linha 1 da grid 1 e assim por diante, você pode fazer assim:

     For i As Integer = 0 To DataGridView1.Rows.Count - 1
                For j As Integer = 0 To DataGridView1.Columns.Count - 1
                    If String.IsNullOrEmpty(DataGridView1.Rows(i).Cells(j).Value.ToString) OrElse String.IsNullOrEmpty(DataGridView2.Rows(i).Cells(j).Value.ToString) OrElse _
                       DataGridView1.Rows(i).Cells(j).Value.ToString.ToUpper <> DataGridView2.Rows(i).Cells(j).Value.ToString.ToUpper Then
                        DataGridView2.Rows(i).Cells(j).Style.BackColor = Color.Red
                    End If
                Next
            Next

    Wennder Santos

    quinta-feira, 27 de março de 2014 13:58
  • olá Wennder Santos

    muito obrigado...
    mais tenho um problema desta maneira.
    as colunas não são iguais, e também não seguem a mesma ordem, no caso teria selecionar apenas 3 a 5 colunas da 1ª datagridview e fazer uma busca na 2ª datagridwiew.

    e marcar ou listar apenas o falso ou verdadeiro.

    pensei em fazer duas lista, uma para cada grid concatenando os valores das colunas necessárias

    e pegar o primeiro índice e buscar na segunda lista.
    fazer isso no laço de repetição e me marcar os falsos.

    isso seria possível?


    sexta-feira, 28 de março de 2014 12:26
  • Olá, 

    não entendi muito bem, tente assim:

     For i As Integer = 0 To DataGridView1.Rows.Count - 2
                For j As Integer = 2 To DataGridView1.Columns.Count - 1
                    If j = 2 OrElse j = 4 Then
                        For k As Integer = 0 To DataGridView2.Rows.Count - 2
                            For l As Integer = 0 To DataGridView2.Columns.Count - 1
                                If DataGridView1.Rows(i).Cells(j).Value.ToString.ToUpper = DataGridView2.Rows(k).Cells(l).Value.ToString.ToUpper Then
                                    DataGridView2.Rows(k).Cells(l).Style.BackColor = Color.Green
                                End If
                            Next
                        Next
                    End If
                Next
            Next

    Wennder Santos

    sexta-feira, 28 de março de 2014 13:36
  • Valeu Wennder

    começou a melhorar as ideias aqui, assim que finalizar o projeto, posto o código para uma analise da galera e vc da sua opinião... 

    sábado, 29 de março de 2014 12:00