Inquiridor
Comparando Duas Datagridview

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
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
-
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?
-
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
-