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

C# Discussion :

INSERT INTO base Access C# [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de Asticoco
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2020
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2020
    Messages : 20
    Par défaut INSERT INTO base Access C#
    Bonjour, j'ai (malheureusement) encore un soucis avec ma base Access.

    Je voulais pouvoir ajouter des lignes dans ma base Access mais j'obtiens une erreur : j'ai pourtant fait la même chose dans une autre table avec moins de colonnes et ça marche parfaitement !

    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
     try
                {
                    connection.Open();
                    OleDbCommand command = new OleDbCommand();
                    command.Connection = connection;
                    command.CommandText = "INSERT INTO hotline (Quand,Qui,Quoi,Comment,Ou,Pb,Solutions,Telem,Axi,Statut,Resolule,Commentaires) VALUES ('" + textBox1.Text + "', '" + comboBox2.Text + "','" + comboBox1.Text + "','" + comboBox3.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + checkBox1.Checked + "','" + checkBox2.Checked + "','" + comboBox4.Text + "','" + dateTimePicker1.Text + "','" + textBox6.Text + "')";
                    command.ExecuteNonQuery();
                    SystemSounds.Exclamation.Play();
                    MessageBox.Show("Appel ajouté à HOTLINE");
                    connection.Close();
                    this.Hide();
                }
     
                catch (Exception ex)
                {
                    MessageBox.Show("ERREUR" + ex);
                }
    J'obtiens ce message d'erreur :
    Nom : 2020-02-18_14-50-50.png
Affichages : 211
Taille : 16,7 Ko

    D'après ce que j'ai pu lire, ce message d'erreur serait causé par le fait d'avoir des types de colonnes différents (booléen, texte court, date...) des champs de saisie (textbox, checkbox...) . J'ai donc adapté tout ça avec des CheckBox, DateTimePicker... mais rien n'y fait.

    Au cas ou je vous donne aussi mes colonnes et leurs types : j'ai aussi une colonne ID mais il s'agit d'une clé primaire donc c'est un numéro automatique :

    - Quand : Texte court
    - Qui : Texte court
    - Quoi : Texte court
    - Comment : Texte court
    - Où : Texte court
    - Pb : Texte long
    - Solutions : Texte long
    - Telem : Oui/Non
    - Axi : Oui/Non
    - Statut : Texte court
    - Resolule : Date/Heure
    -Commentaires : Texte court

    Merci d'avance pour votre aide

  2. #2
    Membre averti Avatar de Asticoco
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2020
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2020
    Messages : 20
    Par défaut
    Finalement, j'ai trouvé à l'aide d'un tuto de developpez.net !

    Il s'agit des requêtes paramétrées :https://webman.developpez.com/articl...ameter/csharp/

    Voici mon code fonctionnel si ça peut aider d'autres.

    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
    OleDbCommand command = new OleDbCommand();
                    command.Connection = connection;
     
                    //Création et décalartion des paramètres 
                    command.Parameters.Add(new OleDbParameter("@Quand", OleDbType.VarChar));
                    command.Parameters.Add(new OleDbParameter("@Qui", OleDbType.VarChar));
                    command.Parameters.Add(new OleDbParameter("@Quoi", OleDbType.VarChar));
                    command.Parameters.Add(new OleDbParameter("@Comment", OleDbType.VarChar));
                    command.Parameters.Add(new OleDbParameter("@Ou", OleDbType.VarChar));
                    command.Parameters.Add(new OleDbParameter("@Pb", OleDbType.LongVarChar));
                    command.Parameters.Add(new OleDbParameter("@Solutions", OleDbType.LongVarChar));
                    command.Parameters.Add(new OleDbParameter("@Telem", OleDbType.Boolean));
                    command.Parameters.Add(new OleDbParameter("@Axi", OleDbType.Boolean));
                    command.Parameters.Add(new OleDbParameter("@Statut", OleDbType.VarChar));
                    command.Parameters.Add(new OleDbParameter("@Resolule", OleDbType.Date));
                    command.Parameters.Add(new OleDbParameter("@Commentaires", OleDbType.LongVarChar));
     
                    //Attribution des valeurs aux paramètres 
                    command.Parameters["@Quand"].Value = textBox1.Text;
                    command.Parameters["@Qui"].Value = comboBox2.Text;
                    command.Parameters["@Quoi"].Value = comboBox1.Text;
                    command.Parameters["@Comment"].Value = comboBox3.Text;
                    command.Parameters["@Ou"].Value = textBox2.Text;
                    command.Parameters["@Pb"].Value = textBox3.Text;
                    command.Parameters["@Solutions"].Value = textBox4.Text;
                    command.Parameters["@Telem"].Value = Convert.ToBoolean(checkBox1.Checked);
                    command.Parameters["@Axi"].Value = Convert.ToBoolean(checkBox2.Checked);
                    command.Parameters["@Statut"].Value = comboBox4.Text;
                    dateTimePicker1.CustomFormat = "dd/MM/yyyy";
                    dateTimePicker1.Format = DateTimePickerFormat.Custom;
                    command.Parameters["@Resolule"].Value = dateTimePicker1.Text;
                    command.Parameters["@Commentaires"].Value = textBox6.Text;
     
     
                    command.CommandText = "INSERT INTO hotline (Quand,Qui,Quoi,Comment,Ou,Pb,Solutions,Telem,Axi,Statut,Resolule,Commentaires) VALUES (@Quand,@Qui,@Quoi,@Comment,@Ou,@Pb,@Solutions,@Telem,@Axi,@Statut,@Resolule,@Commentaires)";
     
                    connection.Open();
                    command.ExecuteNonQuery();
                    connection.Close();
                    SystemSounds.Exclamation.Play();
                    MessageBox.Show("Appel ajouté à HOTLINE");
     
                    this.Hide();
                }
     
                catch (Exception ex)
                {
                    MessageBox.Show("ERREUR" + ex);
                }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#]faire 1 Insert Into sur Access
    Par mcay dans le forum Windows Forms
    Réponses: 2
    Dernier message: 12/02/2010, 11h47
  2. problème INSERT INTO C#/Access
    Par jerome71300 dans le forum Accès aux données
    Réponses: 8
    Dernier message: 18/08/2008, 13h34
  3. PB INSERT INTO dans Access
    Par papy75 dans le forum Accès aux données
    Réponses: 3
    Dernier message: 05/05/2008, 09h03
  4. [ODBC] Insert into et access
    Par frogs dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 24/07/2007, 16h45
  5. Réponses: 2
    Dernier message: 23/02/2006, 12h23

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