Passage de paramètres aux requetes

[Résolu]
Signaler
Messages postés
27
Date d'inscription
mardi 29 novembre 2005
Statut
Membre
Dernière intervention
29 mars 2008
-
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
-
Bonjour,

Je suis en train de développer une IHM en C# sur une base MySQL sous VS2005. Je veux utiliser les fonctionnalités de .NET 2 mais j'ai un pb de passage de paramètres à mes requetes INSERT/UPDATE/DELETE. Tout ce qui est déplacement sur les enregistrements fonctionne correctement (premier, suivant, dernier....) mais j'ai un pb chaque fois que j'ai besoin de passer des paramètres.
Ci-dessous une portion de mon code qui devrait être suffisante

string chaineCnx = "Server=localhost;Database=xxxx;Uid=xxxxx;Pwd=xxxxxxx;";
MySqlConnection connexionMySQL = new MySql.Data.MySqlClient.MySqlConnection(chaineCnx);
// Creation du DataSet
donneesChargees = new DataSet();
donneesChargees.Locale = System.Globalization.CultureInfo.InvariantCulture;

// Chargement des données de la table refPannes dans le DataSet
monDataAdapterMySQL = new MySqlDataAdapter("select * from ref_Pannes", connexionMySQL);

// Preparation de la requete de suppression        
monDataAdapterMySQL.DeleteCommand = new MySqlCommand("DELETE FROM REF_PANNES WHERE idRefPANNE=?idRefPanne",connexionMySQL);
monDataAdapterMySQL.DeleteCommand.Parameters.Add("?idRefPanne", MySqlDbType.Int32);

monDataAdapterMySQL.Fill(donneesChargees,"ref_pannes");

// Liaison du connecteur de données à la table RefPannes
monBindingSource.DataSource = donneesChargees;
monBindingSource.DataMember = "ref_pannes";
tbxIdRefPanne.DataBindings.Add("text", monBindingSource, "idRefPanne", true);
tbxDescription.DataBindings.Add("text", monBindingSource, "Descriptif", true);
tbxLibelle.DataBindings.Add("text", monBindingSource, "Libelle", true);

Lors d"un clic sur un bouton je veux par exemple supprimer un fichier avec le code suivant :

            this.monBindingSource.EndEdit();
            this.monBindingSource.RemoveCurrent();
            this.monDataAdapterMySQL.Update(donneesChargees, "ref_pannes");

biensur je déclenche une erreur car aucun param n'est passé à a ma requete (le param est en fait NULL)....

Je suis preneur de tout conseil...
merci

4 réponses

Messages postés
27
Date d'inscription
mardi 29 novembre 2005
Statut
Membre
Dernière intervention
29 mars 2008

Salut,

ouaip, c'est vrai..... mais je me suis demandé si ma question avait interessé quelqu'un..... :-)
En fait, on peut lier les paramètres de la requête aux données du DataSet en utilisant la petite modification suivante (par rapport au code donnée ci-dessus).

                MySqlParameter qryInsParam_1 = new MySqlParameter("?idRefPanne", MySqlDbType.Int32);
                qryInsParam_1.SourceColumn = "idRefPanne";
                qryInsParam_1.Direction = ParameterDirection.InputOutput;
                monDataAdapterMySQL.InsertCommand.Parameters.Add(qryInsParam_1);

Si le reste du code est correct (liaison avec le BindingSource et les contrôles du Formulaire) ça marche bien ...

Vincent
Messages postés
27
Date d'inscription
mardi 29 novembre 2005
Statut
Membre
Dernière intervention
29 mars 2008

Bon... je me suis débrouillé tout seul.... alors je clos la question.. :-)
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
54
Salut

Et si tu donnais la solution pour que les personnes qui auront le meme probleme que toi par la suite puisse trouver facilement ?

Mx
MVP C# 
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
54
Merci :)

en fait, je t'avoue que j'avais meme pas vu passer ta question

Mx
MVP C#