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