Verifier colonne datagridview en C# [Résolu]

chiro2000 19 Messages postés mercredi 31 octobre 2007Date d'inscription 3 octobre 2011 Dernière intervention - 1 oct. 2011 à 13:13 - Dernière réponse : Whismeril 11438 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 26 avril 2018 Dernière intervention
- 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!!!!
Afficher la suite 

3 réponses

Répondre au sujet
Whismeril 11438 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 26 avril 2018 Dernière intervention - 2 oct. 2011 à 12:45
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Whismeril
chiro2000 19 Messages postés mercredi 31 octobre 2007Date d'inscription 3 octobre 2011 Dernière intervention - 3 oct. 2011 à 01:09
0
Utile
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.
Commenter la réponse de chiro2000
Whismeril 11438 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 26 avril 2018 Dernière intervention - 3 oct. 2011 à 06:56
0
Utile
De rien


Whismeril
Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.