Connection Bdd

Résolu/Fermé
vjp21 - Modifié le 10 juin 2021 à 10:35
 Germain - 8 juil. 2021 à 17:48
Bonjour,

Je ne parviens pas à me connecter et à ajouter les éléments à ma base de donnée avec le code ci-dessous. Cela fait un moment que je planche dessus mais j'ai un problème au niveau du : cmd.ExecuteNonQuery();, bien que le code ne semble comportait aucune erreur d'après les indications sur VisualStudio.

Si une âme charitable pouvait m'aider, je vous en remercie :)
Message modifié par la modération
Pour une lecture plus facile du code, à l'avenir utilisez les balises, VOIR CETTE PAGE


Voici le code en question:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;


namespace Projet_BTS_AppFinal
{
    public partial class BTS : Form
    {
        public BTS()
        {
            InitializeComponent();
        }

        MySqlConnection cn;
        bool Connecté = false;

        private void button1_Click(object sender, EventArgs e)
        {
            if (button1.Text == "Se connecter")
            {
                cn = new MySqlConnection("SERVER=localhost;PORT=3306;DATABASE=portique;UID=root;PWD=23021998;");

                try
                {
                    if (cn.State == ConnectionState.Closed) { cn.Open(); } //tenter d'ouvrir la connexion a la base donnée
                    button1.Text = "Se déconnecter";
                    Connecté = true;
                }
                catch (Exception ex) { MessageBox.Show(ex.Message); }
            }

            else //se déconnecter
            {
                cn.Close();
                button1.Text = "Se connecter";
                Connecté = false;
            }
        }


        private void button2_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "")
            {
                MessageBox.Show("entrez un numéro EPC.");
            }
            else if (textBox2.Text == "")
            {
                MessageBox.Show("Entrez un nom.");
            }
            else if (textBox3.Text == "")
            {
                MessageBox.Show("Entrez le nom du fabriquant.");
            }
            else if (textBox4.Text == "")
            {
                MessageBox.Show("Entrez le prix.");
            }
            else if (textBox5.Text == "")
            {
                MessageBox.Show("Entrez la quantité de produit.");
            }

            else
            {
                if (Connecté)
                {

                    MySqlCommand cmd = new MySqlCommand("INSERT INTO portique(Numero, Nom, Fabriquant, Prix, Stock) VALUES(@Numero,@Nom,@Fabriquant,@Prix,@Stock)");
                    cmd.Parameters.AddWithValue("@Numero", textBox1.Text);
                    cmd.Parameters.AddWithValue("@Nom", textBox2.Text);
                    cmd.Parameters.AddWithValue("@Fabriquant", textBox3.Text);
                    cmd.Parameters.AddWithValue("@Prix", textBox4.Text);
                    cmd.Parameters.AddWithValue("@Stock", textBox5.Text);
                    cmd.ExecuteNonQuery();
                    cmd.Parameters.Clear();
                    MessageBox.Show("Ajouté.");
                }
                else
                {
                    MessageBox.Show("vous n'êtes pas connecté à la base de données");
                }
            }
        }
    }
}



Configuration: Windows / Opera 76.0.4017.154
A voir également:

2 réponses

yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024 1 477
10 juin 2021 à 11:35
bonjour,
de quel problème s'agit-il?
0
Voici l'erreur: System.InvalidOperationException : 'Connection must be valid and open.'
0
yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024 1 477 > vjp21
10 juin 2021 à 12:51
quelle connexion as-tu l'intention d'utiliser? comment as-tu associé cmd à cette connexion?
0
vjp21 > yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024
11 juin 2021 à 12:38
J'ai résolu mes problèmes. Merci à vous :)
0
Salut !
Tu peux modifier cette ligne en écrivant ceci :
MySqlCommand cmd = new MySqlCommand("INSERT INTO portique VALUES(@Numero,@Nom,@Fabriquant,@Prix,@Stock)",con);
0