Verifier colonne datagridview en C#

[Résolu]
Signaler
Messages postés
19
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
3 octobre 2011
-
Messages postés
16351
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
20 octobre 2021
-
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

Messages postés
16351
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
20 octobre 2021
567
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
Messages postés
19
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
3 octobre 2011

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.
Messages postés
16351
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
20 octobre 2021
567
De rien


Whismeril