DataGridView impedire inserimento dati doppi

sabato 10 maggio 2014 - 19.23

Alexia8520 Profilo | Newbie

Buona sera ragazzi/e... avrei un problema con un datagridview vb 2010
per falra breve: nella prima colonna che è adibita a ricevere solo numeri, "Vorrei" che quando inserisco un numero uguale
ad uno già esistente me lo segnali..
altrimenti quando salvo, mi da errore ma vorrei che mi avvisasse prima di tutto cio...
e se salvo dopo aver inserito gia 2 5 10 righe me le annulla tutte..
Mille Grazie a Tutti/e

Davide1986 Profilo | Junior Member

Puoi mettere il codice di come la carichi la tabella e di come la popoli? Tutto questo può essere d'aiuto per capire come poterti aiutare...

Ci sono tanti modi per fare la verifica, il primo che mi viene in mente : è che la prima volta che si carica/popola il DataGridView carico in una lista tutti gli indici ID e poi ogni volta che inserisco verifico se in quella lista ci sono gli ID , oppure ogni volta che confermo la cella lui scansiona tutta la colonna e verifica se quell'ID è presente o meno.. ma tutto questo comporta un rallentamento al sistema notevolmente .

Se tu spieghi se il DataGridView è collegato ad un Database? Se si come ? Se no, che operazioni fai dopo che hai inserito i dati? Tutto questo serve per capire quali ragionamenti fai e come ti si può aiutare...

Ti allego alcuni pezzi di codice in C# ma che li puoi facilmente modificare e farli in VB.NET , se hai problemi puoi usare questo Tool Online ottimo : http://www.developerfusion.com/tools/convert/csharp-to-vb , se non ci riesci riscrivimi che ti aiuto..

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Il codice è facilmente modificabile.

Ricorda che, accettare la risposta è un modo di ringraziare chi ci ha aiutato ed evidenziare che il problema è stato risolto.
Blog ImaginSystems
http://blogs.dotnethell.it/imaginsystems
http://www.alpacasrl.it

Alexia8520 Profilo | Newbie

Ciao Davide Mille Grazie per l'interessamento..
il Datagridview legge un database di access
lo popolo semplicmente cosi:
Me.OrdiniTableAdapter.Fill(Me.OrdinaDataSet.ordini)

mi sono messa a trafficare e alla fine ne sono uscita così.. non so se va bene ma per lo meno funziona..
il primo tronco sopra mi controlla i dati univoci sulla prima colonna e se fosse che trova il codice uguale mi avvisa
e poi ho messo l'exit sub altrimenti mi leggeva anche l'errore sotto
Private Sub OrdiniDataGridView_DataError(sender As Object, e As System.Windows.Forms.DataGridViewDataErrorEventArgs) Handles OrdiniDataGridView.DataError
Dim Result As DialogResult
If (e.Context = DataGridViewDataErrorContexts.Commit) Then
MessageBox.Show("Attenzione questo codice esiste gia. Sostituire e/o aggiornare lo stesso")
e.Cancel = True
OrdiniDataGridView.BeginEdit(False)
Exit Sub
End If

e questo invece se si inserisce una data sbagliata o delle lettere negli € mi avvisa..
If Result = Windows.Forms.DialogResult.Yes Then
e.Cancel = True
OrdiniDataGridView.BeginEdit(False)
Else
MessageBox.Show("Attenzione si sta tentando di inserire dei caratteri non validi. Controllare che non stiate inserendo una data sbagliata e/o € ")

End If
cmnq se ci fosse qualcosa di meglio o di piu corretto sono tutta orecchie e occhi

Mille grazie a tutti...
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5