BLOQUEAR O REGISTRO DUPLICADO NO DATAGRID

GUIMANCINE 15/12/2015 11:54:42
#455176
Bom dia, tenho alguns textbox que quando preenchidos eles adicionam uma linha do datagrid.
Como eu faço para não deixar adicionar dados iguais no datagrid.

Eu uso esse comando pra adicionar linha do grid:

[ô]SE O GRIDPEDIDO FOR IGUAL A 0 O SISTEMA EXECUTA OS COMANDOS ABAIXO
If GridPedido.Rows.Count = 0 Then

[ô]DEIXA O TXTULTIMOPEDIDO VISIVEL
txttultimopedido.Visible = True

[ô]PEGA O ULTIMO PEDIDO E SOMA MAIS UM NO TXTULTIMOPEDIDO
txttultimopedido.Text = txtnumeropedidos.Text + 1

[ô]ADICIONA A COLUNA PEDIDO COM OS DADOS DO txttultimopedido.Text
Dim numeropedido As New DataGridViewTextBoxColumn
numeropedido.HeaderText = [Ô]PEDIDO[Ô]
GridPedido.Columns.Add(numeropedido)
GridPedido.Columns(0).Width = 80
GridPedido.Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

[ô]O RESTO E IGUAL

Dim CdProduto As New DataGridViewTextBoxColumn
CdProduto.HeaderText = [Ô]CODIGO[Ô]
GridPedido.Columns.Add(CdProduto)
GridPedido.Columns(1).Width = 260
GridPedido.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter


Dim Produto As New DataGridViewTextBoxColumn
Produto.HeaderText = [Ô]PRODUTO[Ô]
GridPedido.Columns.Add(Produto)
GridPedido.Columns(2).Width = 380

Dim Quantidade As New DataGridViewTextBoxColumn
Quantidade.HeaderText = [Ô]QUANTIDADE[Ô]
GridPedido.Columns.Add(Quantidade)
GridPedido.Columns(3).Width = 120
GridPedido.Columns(3).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

Dim valorproduto As New DataGridViewTextBoxColumn
valorproduto.HeaderText = [Ô]VALOR[Ô]
GridPedido.Columns.Add(valorproduto)
GridPedido.Columns(4).Width = 110
GridPedido.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

Dim valortotal As New DataGridViewTextBoxColumn
valortotal.HeaderText = [Ô]TOTALPRODUTO[Ô]
GridPedido.Columns.Add(valortotal)
GridPedido.Columns(5).Width = 110
GridPedido.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter


[ô]TIRA A ORDENAÇÃO DO CABEÇALHO[ô]
GridPedido.Columns(0).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(1).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(2).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(3).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(4).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(5).SortMode = DataGridViewColumnSortMode.NotSortable


GridPedido.Rows.Add(txttultimopedido.Text, TxtCdProduto.Text, Combonomeproduto.Text, Txtquantidade.Text, Txtvalorproduto.Text, Txtvalortotal.Text)

Else
GridPedido.Rows.Add(txttultimopedido.Text, TxtCdProduto.Text, Combonomeproduto.Text, Txtquantidade.Text, Txtvalorproduto.Text, Txtvalortotal.Text)
End If
PERCIFILHO 15/12/2015 12:37:13
#455178
Resposta escolhida
Penso que você poderia fazer um for...next, antes de adicionar a linha no grid, percorrendo todas as linhas do grid e procurando para ver se já existe o número do pedido na coluna correspondente. Aí, se não existir, adiciona a linha desejada.
A lógica, penso que é essa.
GUIMANCINE 15/12/2015 13:07:44
#455180
Fiz desta forma. Ate conseguir fazer a mensagem aparacer quando tiver um registro igual no grid.
Mais depois da mensagem ele adiciona a linha :/

 Dim i As Integer

For i = 0 To GridPedido.Rows.Count - 1

If GridPedido.Rows.Item(i).Cells(2).Value = Combonomeproduto.Text Then
MsgBox([Ô]ITEM JA ADICIONADO!!! - [Ô] & GridPedido.Rows.Item(i).Cells(2).Value & [Ô][Ô], MsgBoxStyle.Information, [Ô]GMParking - Mensagem Informativa[Ô])
End If
Next

[ô]SE O GRIDPEDIDO FOR IGUAL A 0 O SISTEMA EXECUTA OS COMANDOS ABAIXO
If GridPedido.Rows.Count = 0 Then

[ô]DEIXA O TXTULTIMOPEDIDO VISIVEL
txttultimopedido.Visible = True

[ô]PEGA O ULTIMO PEDIDO E SOMA MAIS UM NO TXTULTIMOPEDIDO
txttultimopedido.Text = txtnumeropedidos.Text + 1

[ô]ADICIONA A COLUNA PEDIDO COM OS DADOS DO txttultimopedido.Text
Dim numeropedido As New DataGridViewTextBoxColumn
numeropedido.HeaderText = [Ô]PEDIDO[Ô]
GridPedido.Columns.Add(numeropedido)
GridPedido.Columns(0).Width = 80
GridPedido.Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

[ô]O RESTO E IGUAL

Dim CdProduto As New DataGridViewTextBoxColumn
CdProduto.HeaderText = [Ô]CODIGO[Ô]
GridPedido.Columns.Add(CdProduto)
GridPedido.Columns(1).Width = 260
GridPedido.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter


Dim Produto As New DataGridViewTextBoxColumn
Produto.HeaderText = [Ô]PRODUTO[Ô]
GridPedido.Columns.Add(Produto)
GridPedido.Columns(2).Width = 380

Dim Quantidade As New DataGridViewTextBoxColumn
Quantidade.HeaderText = [Ô]QUANTIDADE[Ô]
GridPedido.Columns.Add(Quantidade)
GridPedido.Columns(3).Width = 120
GridPedido.Columns(3).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

Dim valorproduto As New DataGridViewTextBoxColumn
valorproduto.HeaderText = [Ô]VALOR[Ô]
GridPedido.Columns.Add(valorproduto)
GridPedido.Columns(4).Width = 110
GridPedido.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

Dim valortotal As New DataGridViewTextBoxColumn
valortotal.HeaderText = [Ô]TOTALPRODUTO[Ô]
GridPedido.Columns.Add(valortotal)
GridPedido.Columns(5).Width = 110
GridPedido.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter


[ô]TIRA A ORDENAÇÃO DO CABEÇALHO[ô]
GridPedido.Columns(0).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(1).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(2).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(3).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(4).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(5).SortMode = DataGridViewColumnSortMode.NotSortable


GridPedido.Rows.Add(txttultimopedido.Text, TxtCdProduto.Text, Combonomeproduto.Text, Txtquantidade.Text, Txtvalorproduto.Text, Txtvalortotal.Text)

Else
GridPedido.Rows.Add(txttultimopedido.Text, TxtCdProduto.Text, Combonomeproduto.Text, Txtquantidade.Text, Txtvalorproduto.Text, Txtvalortotal.Text)
End If
PERCIFILHO 15/12/2015 14:26:38
#455185
Aqui tem um exemplo bem, mas bem simples, que eu fiz rapidinho para te ilustrar.
é claro que você terá que adaptar ao seu código, mas enfim, espero ter ajudado de alguma forma.
Até mais.
Tópico encerrado , respostas não são mais permitidas