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

Windows Forms Discussion :

Insertion dans une table [Fait]


Sujet :

Windows Forms

  1. #1
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Par défaut Insertion dans une table
    Bonsoir,

    Je ne peut pas insérer des lignes dans ma table, l'erreur est la suivante:

    column count doesn't match value row1.

    j'ai vérifié les champs, j'ai tous initialisé, mais c'est toujours : column count doesn't match value row1.

    Svp aidez moi à trouver l'erreur:

    voici mon code:

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
        string strConn = "Server = localhost; database = databasepsy; uid= root; pwd = root";
    	MySqlConnection cnx = new MySqlConnection();
            MySqlDataAdapter MyAdapter = new MySqlDataAdapter();
     
            string premConsult = "";
            string sexe = "";
            string respLegal = "";
     
    	//....
     
    	private void btnSavePatient_Click(object sender, EventArgs e)
            {
                string nom = txtBnom.Text;
                string prenom = txtbprenom.Text;
                string dateNaissance = dateTimePickerNaissance.Text;
                string age = txtBage.Text;
                string datPremConsul = dateTimePickerPremCons.Text;
                string datDernConsul = dateTimePickerDernCons.Text;
                string nbreConsul = txtBnbreCons.Text;
                string etatCivil = comboEtatCivil.Text;
                string nomConjoint = txtBnomConj.Text;
                string adress = txtBAdress.Text;
                string cdPostal = txtBcodPost.Text;
                string ville = txtBVille.Text;
                string pays = txtBPays.Text;
                string telMaison = txtBtelMaison.Text;
                string telTravail = txtBTelTrav.Text;
                string autreTel = txtBAutrTel.Text;
                string gsm = txtBGsm.Text;
                string adressePar = txtBAdressePar.Text;
                string Note = txtBNote.Text;
                string ModVie = txtBModVie.Text;
                string nivSocial = comboNiveauSocial.Text;
                string tuteur = txtBTuteur.Text;
     
    	    string MySQLCmdEnregistrer = "INSERT INTO patient(id_patient,nom,prenom,date_naissance,age,date_prem_cons,date_dern_cons,nbre_cons,etat_civil,nom_conjoint,adresse,code_postal,ville,pays,tel_maison,tel_travail,autres_tel,gsm,adresse_par,note,sexe,mode_vie,niveau_soscial,responsable_legal,tuteur) VALUES( '' ,'" + nom + "','" + prenom + "','" + dateNaissance + "','" + age + "','" + premConsult + "','" + datPremConsul + "','" + datDernConsul + "','" + nbreConsul + "','" + etatCivil + "','" + nomConjoint + "','" + adress + "','" + cdPostal + "','" + ville + "','" + pays + "','" + telMaison + "','" + telTravail + "','" + autreTel + "','" + gsm + "','" + adressePar + "','" + Note + "','" + sexe + "','" + ModVie + "','" + nivSocial + "','" + respLegal + "','" + tuteur + "')";
     
                MySqlCommand cmd = new MySqlCommand(MySQLCmdEnregistrer, cnx);
     
    	    if (nom == "" || prenom == "" || dateNaissance == "" || datPremConsul == "" || etatCivil == "" || ModVie == "")
                {
                    MessageBox.Show("Vous devez remplir tous les champs marqué par * ");
                }
                else
                {
     
                    try
                    {
                        cnx.ConnectionString = strConn;
                        cnx.Open();
                        MessageBox.Show("Connection réussie");
     
                        int nombre = cmd.ExecuteNonQuery();
                        if (nombre != 0)
                        {
                            MessageBox.Show("Un patient a été bien enregistré");
                            txtBnom.Text = "";
                            txtbprenom.Text = "";
                            chckBPremCons.Checked = false;
                            comboEtatCivil.Text = "";
                            txtBnomConj.Text = "";
                            txtBAdress.Text = "";
                            txtBcodPost.Text = "";
                            txtBVille.Text = "";
                            txtBPays.Text = "";
                            txtBtelMaison.Text = "";
                            txtBTelTrav.Text = "";
                            txtBAutrTel.Text = "";
                            txtBGsm.Text = "";
                            txtBAdressePar.Text = "";
                            txtBNote.Text = "";
                            txtBModVie.Text = "";
                            txtBTuteur.Text = "";
                            txtBnom.Focus();
                        }
     
                        cnx.Close();
     
                    }
     
                    catch (Exception ex)
                    {
                        MessageBox.Show("Problème de connection " + ex.Message);
                    }
                }
     
    //.....
     
                private void txtBage_TextChanged(object sender, EventArgs e)
            {
                int agecalcule = int.Parse(txtBage.Text);
                if (agecalcule > 20 || (chckBWiRespLegal.Checked) == false)
                {
                    labelRespLegal.ForeColor = System.Drawing.Color.Gray;
                    labelTuteur.ForeColor = System.Drawing.Color.Gray;
                    chckBWiRespLegal.Enabled = false;
                    chckBNonRespLegal.Enabled = false;
                    txtBTuteur.Enabled = false;
     
                }
                else if (agecalcule < 20 && (chckBWiRespLegal.Checked) == true)
                {
                    labelRespLegal.ForeColor = System.Drawing.Color.Black;
                    labelTuteur.ForeColor = System.Drawing.Color.Black;
                    txtBTuteur.Enabled = true;
                    respLegal = txtBTuteur.Text;
                }
            }
     
            private void chckBWiRespLegal_CheckedChanged(object sender, EventArgs e)
            {
                if (chckBWiRespLegal.Checked== true)
                chckBNonRespLegal.Checked = false;
                else
                    chckBNonRespLegal.Checked = true;
            }
     
            private void chckBNonRespLegal_CheckedChanged(object sender, EventArgs e)
            {
                if (chckBNonRespLegal.Checked == true)
                    chckBWiRespLegal.Checked = false;
                else
                    chckBWiRespLegal.Checked = true;
     
            }
            public int GetAge(DateTime DateDeNaissance)
            {
    		int age = DateTime.Now.Year - DateDeNaissance.Year;
    		DateTime DateAnniv = new DateTime(DateTime.Now.Year, DateDeNaissance.Month, DateDeNaissance.Day);
    		if (DateAnniv > DateTime.Now)
    		age--;
     
                return age;
            }
     
    	 private void dateTimePickerNaissance_ValueChanged(object sender, EventArgs e)
            {
                DateTime DateNaiss = dateTimePickerNaissance.Value;
     
                txtBage.Text= (GetAge(DateNaiss)).ToString();
     
            }
      }
    }
    Merci infiniment.

  2. #2
    Membre éprouvé Avatar de bobmidou
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 121
    Par défaut
    salut

    vérifie si tu n'a pas de virgule dans les valeurs que tu inseres car si oui le SGBD le prend comme champs qui doit exister dans la table. par exemple si il y a une virgule dans le textbox de l'adresse ça ne marchera pas

    comme '34, rue de la concorde' alors ici il doit comprendre qu'il y a deux champs 34 et rue de la concorde.

    sinon utilise les requêtes parametrées comme avait dit tomlev
    alors vérifie cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ...VALUES( '' ,'" + nom + "','" + prenom + "','" + dateNaissance + "','" + age + "','" + premConsult + "','" + datPremConsul + "','" + datDernConsul + "','" + nbreConsul + "','" + etatCivil + "','" + nomConjoint + "','" + adress + "','" + cdPostal + "','" + ville + "','" + pays + "','" + telMaison + "','" + telTravail + "','" + autreTel + "','" + gsm + "','" + adressePar + "','" + Note + "','" + sexe + "','" + ModVie + "','" + nivSocial + "','" + respLegal + "','" + tuteur + "')";

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Par défaut
    je commence juste à essayer, et j'ai pas tapé de vergules dans mes champs, juste des lettres et chiffres,..;

    Comment on fait pour les requêtes paramètrées svp.

    ça sera ma dernière question pour ce soir, si ça vous géne pas, un petit exemple. et Merci beauuucoup BobMidou.

  4. #4
    Membre éprouvé Avatar de bobmidou
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 121
    Par défaut
    salut

    tomlev t'avais donné un lien dans ton avant dernier post:

    http://johannblais.developpez.com/tu...s-donnees/#LIV

    bonne chance

    Si tu continues sur ton exemple vérifie bien tous les champs s 'il ont une virgule car je pense que ton erreur veut dire qu'il y a plus de champs ou moins peut être.


  5. #5
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Par défaut
    Ok, merci, ça prendra peut etre beaucoup plus de temps, mais ça pourras résoudre mon problème, et me faire apprendre la bonne pratique

    Je vais essayer ça.

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Par défaut
    Ma requête sera comme ça?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                maCommande.CommandText = "INSERT INTO matable(idtab1,attribut1,attribut2) VALUES(@idtab1,@attribut1,@attribut2)";

  7. #7
    Membre éprouvé Avatar de bobmidou
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 121
    Par défaut
    Salut

    dans ce genre oui et tu vas voir ce n'est pas trops compliquée


  8. #8
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Par défaut
    et pourtant, je voi que c'est compliqué.. peut etre parceque c'est la première fois que je suit les bonnes pratiques.
    de tte façon, ça n'as pas marché, voici ce que j'ai fait:

    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
                IDbCommand maCommande = cnx.CreateCommand();
                maCommande.CommandType = CommandType.Text;
                maCommande.CommandText = "INSERT INTO matable(idtab1,attribut1,attribut2) VALUES(@idtab1,@attribut1,@attribut2)";
     
                IDbParameter paramidtab = maCommande.CreateParameter();
                paramidtab.Name = "@idtab1";
                paramidtab.DbType = DbTypes.Integer;
                paramidtab.Direction = ParameterDirection.output;
                paramidtab.Value =textBox1.Text;
     
     
                IDbParameter paramAttribut1 = maCommande.CreateParameter();
                paramAttribut1.Name = "@attribut1";
                paramAttribut1.DbType = DbTypes.VarChar;
                paramAttribut1.Direction = ParameterDirection.Input;
                paramAttribut1.Value = textBox2.Text;
     
                IDbParameter paramAttribut2 = maCommande.CreateParameter();
                paramAttribut2.Name = "@attribut2";
                paramAttribut2.DbType = DbTypes.VarChar;
                paramAttribut2.Direction = ParameterDirection.Input;
                paramAttribut2.Value = textBox3.Text;
     
     
                maCommande.Parameters.Add(paramidtab);
                maCommande.Parameters.Add(paramAttribut1);
                maCommande.Parameters.Add(paramAttribut2);
    et en faisant la lectue de la dernière partie du tuto, j'ai pas bien compris comment ça se fait: je ne sais pas qu'est ce que je doit mettre comme condition dans le while:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while (jAiDesDonnneesEnAttente)
    {
    while( matable a encore des champs à remplir), comment est ce que je traduit cela en c#.

    Je m'excuse si mes questions sont banales , merci en tous cas.

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Tu n'as pas besoin de faire un while, puisque tu n'insères qu'une seule ligne...
    De plus, il ne faut pas reprendre tel quel le code du tutoriel, il faut l'adapter à ton cas... par exemple, tu n'as pas de paramètre de sortie (Output), seulement des paramètres d'entrée (Input).

  10. #10
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Par défaut
    Alors pour quoi ça ne marche pas, est ce que vous pouvez svp m'aider à trouver comment insérer une ligne dans ma table, avec une requete paramètré, comme écrit dans le tuto, pour ne pas avoir de problème ,

    et c'est quoi le using que je doit ajouter pour qu'il accepte le 'IDbParameter' et le 'DbTypes'?

    voici mon code:

    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
     
                IDbCommand maCommande = cnx.CreateCommand();
                maCommande.CommandType = CommandType.Text;
                maCommande.CommandText = "INSERT INTO matable(idtab1,attribut1,attribut2) VALUES(@idtab1,@attribut1,@attribut2)";
     
                IDbParameter paramidtab = maCommande.CreateParameter();
                paramidtab.Name = "@idtab1";
                paramidtab.DbType = DbTypes.Integer;
                paramidtab.Direction = ParameterDirection.output;
                paramidtab.Value = textBox1.Text;
     
     
                IDbParameter paramAttribut1 = maCommande.CreateParameter();
                paramAttribut1.Name = "@attribut1";
                paramAttribut1.DbType = DbTypes.VarChar;
                paramAttribut1.Direction = ParameterDirection.Input;
                paramAttribut1.Value = textBox2.Text;
     
                IDbParameter paramAttribut2 = maCommande.CreateParameter();
                paramAttribut2.Name = "@attribut2";
                paramAttribut2.DbType = DbTypes.VarChar;
                paramAttribut2.Direction = ParameterDirection.Input;
                paramAttribut2.Value = textBox3.Text;
     
     
                maCommande.Parameters.Add(paramidtab);
                maCommande.Parameters.Add(paramAttribut1);
                maCommande.Parameters.Add(paramAttribut2);

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    using System.Data;
    using System.Data.Common;

  12. #12
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Par défaut
    Ils sont toujours barré, même aprés l'ajout des using...
    le IdbParametre et le DbTypes.

    Mais ou est donc le problème?

  13. #13
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    une erreur dans le tuto apparemment...
    C'est IDbDataParameter en fait, pas IDbParameter

  14. #14
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Par défaut
    Bonjour,

    J'ai réctifié comme j'ai pu, il y a plus d'erreur, mais, l'exécution n'insére toujours pas une ligne dans ma tab. je doute à propos des types, varchar, dans le tuto, j'ai pas trouvé du varchar, alors j'ai mis string...(DbType.String)

    voici le code réctifié, pouvez vous me dire ou est ce que c'est le problème, svp
    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
     IDbCommand maCommande = cnx.CreateCommand();
                maCommande.CommandType = CommandType.Text;
                maCommande.CommandText = "INSERT INTO matable(idtab1,attribut1,attribut2) VALUES(@idtab1,@attribut1,@attribut2)";
     
                IDbDataParameter paramidtab = maCommande.CreateParameter();
                paramidtab.ParameterName = "@idtab1";
                paramidtab.DbType = DbType.Int16;
                paramidtab.Direction = ParameterDirection.InputOutput;
                paramidtab.Value = textBox1.Text;
     
     
                IDbDataParameter paramAttribut1 = maCommande.CreateParameter();
                paramAttribut1.ParameterName = "@attribut1";
                paramAttribut1.DbType = DbType.String;
                paramAttribut1.Direction = ParameterDirection.Input;
                paramAttribut1.Value = textBox2.Text;
     
                IDbDataParameter paramAttribut2 = maCommande.CreateParameter();
                paramAttribut2.ParameterName = "@attribut2";
                paramAttribut2.DbType = DbType.String;
                paramAttribut2.Direction = ParameterDirection.Input;
                paramAttribut2.Value = textBox3.Text;
     
     
                maCommande.Parameters.Add(paramidtab);
                maCommande.Parameters.Add(paramAttribut1);
                maCommande.Parameters.Add(paramAttribut2);

  15. #15
    Membre éprouvé Avatar de bobmidou
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 121
    Par défaut
    Salut

    ça devrai marcher avec ça :

    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
     
     try
                {
     
                   MySqlConnection cnx = new MySqlConnection(strConn);
                   cnx.Open();
                   MySqlCommand maCommande = new MySqlCommand();
                   maCommande.Connection = cnx;
                   maCommande.CommandText = "INSERT INTO matable VALUES(?idtab1,?attribut1,?attribut2)";
                   maCommande.Parameters.Add("?idtab1", "");
                   maCommande.Parameters.Add("?attribut1", textBox2.Text);
                   maCommande.Parameters.Add("?attribut2", textBox3.Text);
                   maCommande.ExecuteNonQuery();
                   cnx.Close();
     
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Problème de connection " + ex.Message);
                }
    Bonne chance

  16. #16
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Par défaut
    Salut,

    ça ne marche yj pas, l'erreur indique q'u'il y aune errer de syntax prés de : (?idtab1,?attribut1,?attribut2)";

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 614
    Par défaut
    c'est normal la syntaxe c'est:
    Voici un exemple complet d'insertion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    OleDbCommand cmdTestAccessImage = new OleDbCommand("INSERT INTO tblBATClients ([IDClient],[Image], [Commentaire]) VALUES (?,?, ?)", cnxTestAccessImage);
     
                    cmdTestAccessImage.Parameters.Add(new OleDbParameter("IDClient", System.Data.OleDb.OleDbType.VarWChar, 50,
                        ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, tBoxRaisonSocialeClient.Text));
                    cmdTestAccessImage.Parameters.Add(new OleDbParameter("Image", OleDbType.VarBinary, bytImage.Length,
                        ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, bytImage));
                    cmdTestAccessImage.Parameters.Add(new OleDbParameter("Commentaire", System.Data.OleDb.OleDbType.VarWChar, 50,
                        ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, txtCommentaire.Text));
                    cmdTestAccessImage.ExecuteNonQuery();
                    cnxTestAccessImage.Close();
    Bien sur pense a modifier le type d'objet que j'utilise dans l'exemple

  18. #18
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Par défaut
    Re,

    J'ai fait comme l'exemple que vous m'avez donné, mais ça marche tj pas, je ne sais pas pourquoi. voici mon code:


    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
    string strConn = "Server = localhost; database = test; uid=root; pwd = root";
     
     
            OleDbConnection cnx = new OleDbConnection();
            MySqlDataAdapter MyAdapter = new MySqlDataAdapter();
     
     
     
            private void button2_Click(object sender, EventArgs e)
            {
     
     
                try
                {
                    cnx.ConnectionString = strConn;
                    cnx.Open();
                    OleDbCommand cmdTest = new OleDbCommand("INSERT INTO tblBATClients ([idtab1],[attribut1], [attribut2]) VALUES(@idtab1,@attribut1,@attribut2)", cnx);
     
                    cmdTest.Parameters.Add(new OleDbParameter("idtab1", System.Data.OleDb.OleDbType.UnsignedInt, 50,
                        ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current,""));
                    cmdTest.Parameters.Add(new OleDbParameter("attribut1", OleDbType.VarChar, 100,
                        ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current,textBox2.Text));
                    cmdTest.Parameters.Add(new OleDbParameter("attribut2", System.Data.OleDb.OleDbType.VarChar, 100,
                        ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current,textBox3.Text));
                    cmdTest.ExecuteNonQuery();
                    cnx.Close();
     
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Problème de connection " + ex.Message);
                }
     
            }
    L'erreur affiché est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    un fournisseur OLE DB n'était pas spécifié dans ConnectionString, Par exemple, 'Provider = SQLOLEDB;'
    Qu'est ce que cela veut dire?

  19. #19
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par skunkies Voir le message
    c'est normal la syntaxe c'est:
    Pas forcément... ça varie selon les SGBD
    Avec MySQL il me semble que c'est plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VALUES(@idtab1,@attribut1,@attribut2)

  20. #20
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Par défaut


    salut tomlv, ça ne marche tj pas, et ça affiche la même erreur.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [ZEOSLIB] Problème Insertion dans une table
    Par moscovisci dans le forum Bases de données
    Réponses: 1
    Dernier message: 09/06/2005, 12h05
  2. [interbase6]probleme d'insertion dans une table
    Par macadam314 dans le forum Bases de données
    Réponses: 10
    Dernier message: 22/02/2005, 14h21
  3. [Sybase] Temps d'une insertion dans une table
    Par vsavoir dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 14/02/2005, 10h04
  4. Extraction d'un .txt et Insertion dans une table
    Par PoPmiSiR dans le forum Access
    Réponses: 8
    Dernier message: 28/10/2004, 19h13
  5. Détection insertion dans une Table
    Par abelman dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/07/2004, 14h24

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