IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ADO.NET Discussion :

fatal error -2147467259 lors d'une requête SQL avec Mysql


Sujet :

ADO.NET

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut fatal error -2147467259 lors d'une requête SQL avec Mysql
    Bonjour,
    Je suis actuellement entrain de développez une petite application afin de gérer des clients pour une ou des entreprises. J'utilise Visual Studio 2012 et je prévois d'utiliser mysql comme bdd par manque de moyen financier. J'ai crée une multitude de méthode pour gérer les existence ainsi que les ajout dans ma bdd.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Boolean Client = ExistUser(Cb_Civiliter.Text, Tb_Nom.Text, Tb_Prenom.Text, mTb_IndicatifDom.Text, mTb_TelephoneDom.Text, mTb_IndicatifNat.Text, mTb_TelephoneNat.Text, mTb_IndicatifPro.Text, mTb_TelephonePro.Text, mTb_DateNaissance.Text, Tb_EmailPro.Text, Tb_EmailPrive.Text, Maconnection);
                                if (Client != true)
                                {
                                    AddClient(Cb_Civiliter.Text, Tb_Nom.Text, Tb_Prenom.Text, mTb_IndicatifDom.Text, mTb_TelephoneDom.Text, mTb_IndicatifNat.Text, mTb_TelephoneNat.Text, mTb_IndicatifPro.Text, mTb_TelephonePro.Text, mTb_DateNaissance.Text, Tb_EmailPro.Text, Tb_EmailPrive.Text, Maconnection);
                                    AddClienthasEntreprise(Cb_Civiliter.Text, Tb_Nom.Text, Tb_Prenom.Text, mTb_IndicatifDom.Text, mTb_TelephoneDom.Text, mTb_IndicatifNat.Text, mTb_TelephoneNat.Text, mTb_IndicatifPro.Text, mTb_TelephonePro.Text, mTb_DateNaissance.Text, Tb_EmailPro.Text, Tb_EmailPrive.Text, Cb_Entreprise.Text, Maconnection);
                                    label5.Text = "Ajout effectué";
                                    label5.BackColor = Color.Green;
                                }
                                else
                                {
                                    AddClienthasEntreprise(Cb_Civiliter.Text, Tb_Nom.Text, Tb_Prenom.Text, mTb_IndicatifDom.Text, mTb_TelephoneDom.Text, mTb_IndicatifNat.Text, mTb_TelephoneNat.Text, mTb_IndicatifPro.Text, mTb_TelephonePro.Text, mTb_DateNaissance.Text, Tb_EmailPro.Text, Tb_EmailPrive.Text, Cb_Entreprise.Text, Maconnection);
                                }
    comme on peut le voir dans ce bout de code je test l'existence d'un utilisateur en appelant la méthode ExistUser si il existe alors on passe au else sinon on ajoute l'utilisateur pour populer la table de correspondance entre un client et une entreprise. C'est dans cette méthode que l'erreur apparait. Le plus surprenant c'est que quand je test ma requête dans phpmyadmin aucun problème l'ajoute je fais correctement. je vous copie les méthode d'ajout du client ainsi que celle qui pose problème.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    public void AddClient(string Civilite, string Nom, string Prenom, string IndicatifTelDom, string TelDom, string IndicatifNat, string TelNat, string IndicatifPro, string TelPro, string DateNaissance, string emailpro, string emailprive, MySqlConnection maConnection)
            {
                try
                {
                    MySqlCommand requete = maConnection.CreateCommand();
                    requete.CommandType = CommandType.Text;
                    requete.CommandText = "INSERT INTO tblclient(fk_Civilite, fk_Nom, fk_Prenom, fk_Indicatifdom, fk_Telephonedom, fk_Indicatifnat, fk_Telephonenat, fk_Indicatifpro, fk_Telephonepro, fk_Datenaissance, fk_Emailpro, fk_Emailprive) VALUES ((SELECT ID FROM tblcivilité WHERE Civilite = @Civilite), (SELECT ID FROM tblnoms WHERE Nom = @nom), (SELECT ID FROM tblprenoms WHERE Prenom = @prenom), (SELECT ID FROM tblindicatifsdom WHERE Indicatif = @indicatifdom), (SELECT ID FROM tbltelephonesdom WHERE Telephone = @telephonedom), (SELECT ID FROM tblindicatifsnat WHERE Indicatif = @indicatifnat), (SELECT ID FROM tbltelephonesnat WHERE Telephone = @telephonenat), (SELECT ID FROM tblindicatifspro WHERE Indicatif = @indicatifpro), (SELECT ID FROM tbltelephonespro WHERE Telephone = @telephonepro), (SELECT ID FROM tbldatenaissances WHERE DateNaissance = @datenaissance), (SELECT ID FROM tblemailspro WHERE Email = @emailpro), (SELECT ID FROM tblemailsprive WHERE Email = @emailprive))";
                    MySqlParameter Civilité = new MySqlParameter("@Civilite", MySqlDbType.VarChar);
                    Civilité.Value = Civilite;
                    requete.Parameters.Add(Civilité);
                    MySqlParameter nom = new MySqlParameter("@nom", MySqlDbType.VarChar);
                    nom.Value = Nom;
                    requete.Parameters.Add(nom);
                    MySqlParameter prenom = new MySqlParameter("@prenom", MySqlDbType.VarChar);
                    prenom.Value = Prenom;
                    requete.Parameters.Add(prenom);
                    MySqlParameter indicatifdom = new MySqlParameter("@Indicatifdom", MySqlDbType.VarChar);
                    indicatifdom.Value = IndicatifTelDom;
                    requete.Parameters.Add(indicatifdom);
                    MySqlParameter telephonedom = new MySqlParameter("@telephonedom", MySqlDbType.VarChar);
                    telephonedom.Value = TelDom;
                    requete.Parameters.Add(telephonedom);
                    MySqlParameter indicatifnat = new MySqlParameter("@indicatifnat", MySqlDbType.VarChar);
                    indicatifnat.Value = IndicatifNat;
                    requete.Parameters.Add(indicatifnat);
                    MySqlParameter telephonenat = new MySqlParameter("@telephonenat", MySqlDbType.VarChar);
                    telephonenat.Value = TelNat;
                    requete.Parameters.Add(telephonenat);
                    MySqlParameter indicatifpro = new MySqlParameter("@indicatifpro", MySqlDbType.VarChar);
                    indicatifpro.Value = IndicatifPro;
                    requete.Parameters.Add(indicatifpro);
                    MySqlParameter telephonepro = new MySqlParameter("@telephonepro", MySqlDbType.VarChar);
                    telephonepro.Value = TelPro;
                    requete.Parameters.Add(telephonepro);
                    MySqlParameter Date_Naissance = new MySqlParameter("@datenaissance", MySqlDbType.VarChar);
                    Date_Naissance.Value = DateNaissance;
                    requete.Parameters.Add(Date_Naissance);
                    MySqlParameter EmailPro = new MySqlParameter("@emailpro", MySqlDbType.VarChar);
                    EmailPro.Value = emailpro;
                    requete.Parameters.Add(EmailPro);
                    MySqlParameter EmailPrive = new MySqlParameter("@emailprive", MySqlDbType.VarChar);
                    EmailPrive.Value = emailprive;
                    requete.Parameters.Add(EmailPrive);
                    requete.ExecuteNonQuery();
                }
                catch (MySqlException Ex)
                {
                    MessageBox.Show("Erreur SQL:\n" + Ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
    Celle-ci est pour l'ajout du client.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    public void AddClienthasEntreprise(string Civilite, string Nom, string Prenom, string IndicatifTelDom, string TelDom, string IndicatiftelNat, string TelNat, string IndicatiftelPro, string TelPro, string DateNaissance, string emailpro, string emailprive, string EntrepriseName, MySqlConnection maConnection)
            {
                try
                {
                    MySqlCommand requete = maConnection.CreateCommand();
                    requete.CommandType = CommandType.Text;
                    requete.CommandText = "INSERT INTO tblclienthasentreprise (fk_Client, fk_Entreprise) VALUES ((SELECT tblclient.ID FROM tblclient, tblcivilité, tblnoms, tblprenoms, tblindicatifsdom, tblindicatifsnat, tblindicatifspro, tbltelephonesdom, tbltelephonesnat, tbltelephonespro, tbldatenaissances, tblemailspro, tblemailsprive WHERE fk_Civilite = tblcivilité.ID AND Civilite = '@Civilite' AND fk_Nom = tblnoms.ID AND Nom = '@nom' AND fk_Prenom = tblprenoms.ID AND Prenom = '@prenom' AND fk_Indicatifdom = tblindicatifsdom.ID AND tblindicatifsdom.Indicatif = '@Indicatifdom' AND fk_Telephonedom = tbltelephonesdom.ID AND tbltelephonesdom.Telephone = '@telephonedom' AND fk_Indicatifnat = tblindicatifsnat.ID AND tblindicatifsnat.Indicatif = '@Indicatifnat' AND fk_Telephonenat = tbltelephonesnat.ID AND tbltelephonesnat.Telephone = '@telephonenat' AND fk_Indicatifpro = tblindicatifspro.ID AND tblindicatifspro.Indicatif = '@Indicatifpro' AND fk_Telephonepro = tbltelephonespro.ID AND tbltelephonespro.Telephone = '@telephonepro' AND fk_Datenaissance = tbldatenaissances.ID AND DateNaissance = '@datenaissance' AND fk_Emailpro = tblemailspro.ID AND tblemailspro.Email = '@emailpro' AND fk_Emailprive = tblemailsprive.ID AND tblemailsprive.Email = '@emailprive''), (SELECT ID FROM tblentreprise WHERE Nom = '@entreprise'))";
                    MySqlParameter Civilité = new MySqlParameter("@Civilite", MySqlDbType.VarChar);
                    Civilité.Value = Civilite;
                    requete.Parameters.Add(Civilité);
                    MySqlParameter nom = new MySqlParameter("@nom", MySqlDbType.VarChar);
                    nom.Value = Nom;
                    requete.Parameters.Add(nom);
                    MySqlParameter prenom = new MySqlParameter("@prenom", MySqlDbType.VarChar);
                    prenom.Value = Prenom;
                    requete.Parameters.Add(prenom);
                    MySqlParameter indicatifdom = new MySqlParameter("@Indicatifdom", MySqlDbType.VarChar);
                    indicatifdom.Value = IndicatifTelDom;
                    requete.Parameters.Add(indicatifdom);
                    MySqlParameter telephonedom = new MySqlParameter("@telephonedom", MySqlDbType.VarChar);
                    telephonedom.Value = TelDom;
                    requete.Parameters.Add(telephonedom);
                    MySqlParameter indicatifnat = new MySqlParameter("@indicatifnat", MySqlDbType.VarChar);
                    indicatifnat.Value = IndicatiftelNat;
                    requete.Parameters.Add(indicatifnat);
                    MySqlParameter telephonenat = new MySqlParameter("@telephonenat", MySqlDbType.VarChar);
                    telephonenat.Value = TelNat;
                    requete.Parameters.Add(telephonenat);
                    MySqlParameter indicatifpro = new MySqlParameter("@indicatifpro", MySqlDbType.VarChar);
                    indicatifpro.Value = IndicatiftelPro;
                    requete.Parameters.Add(indicatifpro);
                    MySqlParameter telephonepro = new MySqlParameter("@telephonepro", MySqlDbType.VarChar);
                    telephonepro.Value = TelPro;
                    requete.Parameters.Add(telephonepro);
                    MySqlParameter Date_Naissance = new MySqlParameter("@datenaissance", MySqlDbType.VarChar);
                    Date_Naissance.Value = DateNaissance;
                    requete.Parameters.Add(Date_Naissance);
                    MySqlParameter EmailPro = new MySqlParameter("@emailpro", MySqlDbType.VarChar);
                    EmailPro.Value = emailpro;
                    requete.Parameters.Add(EmailPro);
                    MySqlParameter EmailPrive = new MySqlParameter("@emailprive", MySqlDbType.VarChar);
                    EmailPrive.Value = emailprive;
                    requete.Parameters.Add(EmailPrive);
                    MySqlParameter Entreprise = new MySqlParameter("@Entreprisename", MySqlDbType.VarChar);
                    Entreprise.Value = EntrepriseName;
                    requete.Parameters.Add(Entreprise);
                    requete.ExecuteNonQuery();
                }
                catch (MySqlException Ex)
                {
                    MessageBox.Show("Erreur SQL:\n" + Ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
    et c'est cette méthode qui effectue toute les instructions correctement jusqu'à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    requete.ExecuteNonQuery();
    juste après être passé sur cette instruction on rentre dans le "Catch".
    D'avance je vous remercie pour votre aide et vous salue
    Spartanjohn

  2. #2
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Bonjour,

    le fait que cela plante sur ExecuteNonQuery semble indiquer que tu as une erreur dans ta requête SQL. Il faudrait que tu nous fournisses le message d'erreur de l'exception.

    PS : évite les noms des variables avec des accentués (MySqlParameter Civilité)

  3. #3
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Au pif,

    à mon avis tu as un soucis au niveau de ta requête au niveau des paramètres.

    Tu utilises les requêtes paramétrées (très bien) mais dans la clause where de ta requête je vois ceci :

    Vu que tu travailles en paramétré, tu dois utiliser (sans ' ' )

    à vérifier mais je pense que ton problème pourrait provenir de la

Discussions similaires

  1. Résultat tronqué lors d'une requête SQL via BDE
    Par Jami68100 dans le forum DB2
    Réponses: 0
    Dernier message: 07/12/2012, 15h37
  2. Erreurs lors d'une requête SQL
    Par karinya dans le forum Bases de données
    Réponses: 5
    Dernier message: 10/11/2010, 13h27
  3. Utilisation du tablespace TEMP lors d'une requête SQL
    Par dyvim dans le forum Administration
    Réponses: 2
    Dernier message: 31/05/2007, 20h15
  4. [MySQL] Est-ce possible de creer des champs en temps réel lors d'une requête SQL ?
    Par kaptnkill dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/09/2006, 20h18
  5. Une requête SQl avec concaténation
    Par Bobybx dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/01/2006, 11h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo