Mise à jour d'une BD à partir d'un DataGridView

Résolu
cs_iceman64b Messages postés 30 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 5 mars 2013 - 2 juil. 2010 à 19:43
yohan49 Messages postés 380 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 août 2011 - 9 juil. 2010 à 17:35
Bonjour,

Je suis à écrire une application en C#, dont une des fenêtres servira à mettre à jours 2 tables dans une BD MySQL. Dans la fenêtre, il y aura 2 Datagridview, chacun associé à un BindingSource (1 table).

Parlons d'un DataGridView (l'autre étant une copie du premier. Une fois le problème réglé pour un, l'autre, ça sera de la tarte!).

Mon problème est le suivant : J'arrive à faire afficher le contenu de la table. J'y arrive en utilisant un Dataset et un paramètre SQL que je passes lors de l'appel. Seulement voilà, je veux que l'utilisateur soit en mesure de faire des ajouts, modifications ou retrait d'enregistrement qu'il voit dans le DataGridView. Pour les modifs, ça va, j'appel la fonction Update et tout baigne (J'ai un bouton sauvegarde pour effectuer la sauvegarde des modifs ou autre opérations).

Si j'ajoutes une ligne dans le DataView, il me sort une erreur qui me dit que je dois utiliser un énoncé insert valide.

Les retraits fonctionnent (aller savoir pourquoi ...). Bref, il n'y a que l'ajout qui pose problème.

Pouvez-vous m'éclairer un peu ...

P.S. : j'utilises VS 2008 et un serveur MySQL

5 réponses

yohan49 Messages postés 380 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 août 2011 7
2 juil. 2010 à 21:45
salut quand tu ajout une ligne a une table le row ajoute doit avoir la meme stucture que la table

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                DataTable dt = dataGridView1.DataSource as DataTable;
                DataRow row = dt.NewRow();
                // modifi le row ici

                // puis ajout le raw a la table
                dt.Rows.Add(row);
            }
            catch (ConstraintException ex)
            {
                MessageBox.Show(ex.Message);
            }
            catch (InvalidConstraintException ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
3
baha112 Messages postés 2 Date d'inscription jeudi 13 avril 2006 Statut Membre Dernière intervention 9 juillet 2010
8 juil. 2010 à 18:35
Bonjour à tous ,
je ss une developpeur debutant en C#, et j'ai recontrer des problemes, et je vous remercie de m'aidée a trouver la solution:
dans ma fenêtre , j'au trois objets ( textbox , boutton et datagridview)
je sais pas comment paramêtrer mon datagridview , pour qu'il affiche l'excution d'une requête , cette dérnire à un condition de selection , elle n'affiche que les eregistrement que egale a la valeur saisi dans le textbox , je veux que le datagridview se rempli lorsque je saisi le cretère de filtre de la requête et je clique sur le boutton
Merci en avance
0
yohan49 Messages postés 380 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 août 2011 7
8 juil. 2010 à 19:13
salut
comme ca :

(myDataGrid.DataSource as DataTable).DefaultView.RowFilter = "Name LIKE " + txtBox.text +"%";

"Name" est le nom de la colonne a filtrer

le "%" est un joker , ici en fin de requete , ca veut dire "Commence par "
0
baha112 Messages postés 2 Date d'inscription jeudi 13 avril 2006 Statut Membre Dernière intervention 9 juillet 2010
9 juil. 2010 à 16:26
Bonsoir yohan49,
tout d'abord , je vous remercie pour votre aide.
je vous informe que j'ai essaiyé le code que vous m'avez envoyé , mais a l'excution un message d'erreur s'affiche a la ligne de ce code "L'exception NullReferenceException n'a pas été gérée"
avez vous une idée pour résoudre ce problème?
Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yohan49 Messages postés 380 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 août 2011 7
9 juil. 2010 à 17:35
faut verifier si Datasource de ta grille n'est pas null , que textbox n'est pas null ect
0
Rejoignez-nous