Verifier colonne datagridview en C#

Résolu
chiro2000 Messages postés 19 Date d'inscription mercredi 31 octobre 2007 Statut Membre Dernière intervention 3 octobre 2011 - 1 oct. 2011 à 13:13
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 - 3 oct. 2011 à 06:56
Bonjour,

J'aurai besoin de vos lumiere en C#
je dispose d'un datagridView appele contrat
Dans cette datagridview il existe plusieurs colonne, (col1, col2, col3....col4);
j'arrive a insérer, modifier supprimer et sauvegarde des informations sans grandes difficultés
l’idée est que j'aimerai juste avant de sauvegarde un changement de la datagridview vérifier la validité des informations qui ont été saisies
1) Si l'info saisi est incorrecte, message Box.Show pour inviter le user a ressaisir les données invalides donc retour sur la ligne en question.
2) Si l'info est valide j'affiche un Message pour dire que les modifications ont bien été pris en compte.

Mon problème est de savoir comment accéder une colonne spécifique et vérifier la valeur contenu dans cette colonne et force le user a modifier la valeur de cette colonne..

exemple

nom-datagrid: contrat
j'aimerai verifier que le colonne num_contrat est bien un champs numerique??

Merci de votre aide!!!!

3 réponses

Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
2 oct. 2011 à 12:45
Bonjour,
si tu as lié directement ta table avec le datagridview, tu peux regarder cellule par cellule.
Tu crees une row à laquelle tu associes ta ligne à vérifier
MaRow = contrat.Rows[1]

Ensuite tu regardes la cellule (il me semble me souvenir qu'il y a .Cells), tu extrais le .Text ou le .Value.
Mais cela t'oblige à vérifier à chaque saisie.

En utilisant le binding ça le fait pour toi (y'a pas les messages, mais ça n'accepte pas la saisie erronée).
Tu crées une classe qui représente ta table (ou par exemple la propriété num_contrat est un int)(MaClasse).
Dans le concepteur de ta Form, à la propriété DataSource de ton datagridview, tu cliques sur "ajouter la source de données du projet", tu cliques sur "Objet" et tu navigues jusqu'à MaClasse.
Cela va créer un lien entre la structure de MaClasse et ton datagridview, ce lien se trouve matérialisé dans un databindindsource.
Cela va te créer des colonnes correspondant à chaque propriété de MaClasse dans le datagridview.
Sur le bord haut une petite flèche te permets d'accéder aux paramètres du tableau (ordres des propriétés, entêtes, etc.)

Tu charges ta table dans une List<T> de cette classe.
Tu affectes ta liste au DataSource du databindingsource.

Et voilà.

Avec cette méthode du peux remplir toutes sortes de contrôles (TextBox, Labels, ListBox, ComboBox, etc...)
Si tu sélectionnes une ligne dans ton tableau, tous les contrôles liées sont mis à jour.
Si tu modifies une valeur dans l'un ou l'autre tous, les autres sont mis à jours.
Tu peux gérer les formats d'affichage (séparateurs de milliers, arrondi etc...).

C'est pratique.



Whismeril
3
chiro2000 Messages postés 19 Date d'inscription mercredi 31 octobre 2007 Statut Membre Dernière intervention 3 octobre 2011
3 oct. 2011 à 01:09
Hello
Quel bonheur de lire cette réponse!!! en effet c'est très pratique comme solution.
tu as non seulement résolu mon problème mais tant d'autre a venir comme les mises a jour automatique.
Encore une fois Merçi.
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
3 oct. 2011 à 06:56
De rien


Whismeril
0
Rejoignez-nous