Connexion à une base de données en local

Résolu
Bonsoir,

Sous visual studio afin de mieux comprendre le fonctionnement d'une base de données j'ai créé une Form avec une textBoxNum, une textBoxNom et une textBoxMdp et pour le code j'ai mis

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        SqlConnection maConnexion = new SqlConnection("Data Source=localhost;Initial Catalog=bdtest;User Id=test;Password=test;"); 

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            SqlCommand maCommande = new SqlCommand();
            maCommande.Connection = maConnexion;
            maConnexion.Open(); 
            maCommande.CommandText = "INSERT INTO tbltest (fldnum, fldnom, fldmdp) VALUES ("+ textBoxNum.Text + ", '" + textBoxNom.Text + ", "+ textBoxMdp.Text +"');";
            maConnexion.Close(); 
        }
    }
}


Le principe est simple, on marque un truc dans les textes box, on appuie sur le bouton et ça ajoute ce qu'on a marqué dans la table créée avec phpmyadmin en local.

Le problème c'est que ça me dit que la base de donnée est inexistante ou injoignable.

J'ai aussi testé avec user id = localhost mais ça ne fonctionne pas (localhost n'a pas de mot de passe).

Que dois-je faire ?

J'ai également testé :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        SqlConnection maConnexion = new SqlConnection("Data Source=localhost,1027 ;Initial Catalog=bdtest;User Id=test;Password=test;"); 

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            SqlCommand maCommande = new SqlCommand();
            maCommande.Connection = maConnexion;
            maConnexion.Open();
            maCommande.CommandText = "INSERT INTO tbltest VALUES (@maValeur1, @maValeur2, @maValeur3);";
            // Puis on définit les valeurs  
            maCommande.Parameters.Add(new SqlParameter("@maValeur1", textBoxNum.Text));
            maCommande.Parameters.Add(new SqlParameter("@maValeur2", textBoxNom.Text));
            maCommande.Parameters.Add(new SqlParameter("@maValeur2", textBoxMdp.Text));  
            maConnexion.Close(); 
        }
    }
}


Mais j'ai le message :

Une connexion a été établie avec le serveur, mais une erreur s'est ensuite produite pendant la négociation préalable à l'ouverture de session. (provider: TCP Provider, error: 0 - Une connexion existante a dû être fermée par l'hôte distant.)

Merci de votre aide.

4 réponses

  1. J'ai essayé

                SqlCommand maCommande = new SqlCommand();
                maCommande.Connection = maConnexion;
                maConnexion.Open();
                maCommande.CommandText = "INSERT INTO tbltest (fldnum, fldnom, fldmdp) VALUES (" + textBoxNum.Text + ", '" + textBoxNom.Text + "', '" + textBoxMdp.Text + "');";
                maConnexion.Close(); 

    Et j'ai encore le même message d'erreur.

    Après j'ai essayé ton code avec la ligne

            SqlConnection maConnexion = new SqlConnection("Data Source=localhost,1027 ;Initial Catalog=bdtest;User Id=root;Password=; "); 


    Mais j'ai encore ce message d'erreur.
    1
    1. J'ai testé en cliquant sur l'icone de wamp serveur en bas à droite, je suis allé dans mysql puis mysql console et j'ai tenté d'accéder à la base de données et ça marche très bien, j'ai même fais un inser into en ligne de commande et ça marche. Je ne comprend pas ce qui ne va pas avec mon programme en c# :-(
      0
      1. Bonjour,

        Il manque des apostrophes dans ta requête INSERT sur le 1er exemple

        maCommande.CommandText = "INSERT INTO tbltest (fldnum, fldnom, fldmdp) VALUES ("+ textBoxNum.Text + ", '" + textBoxNom.Text + ", "+ textBoxMdp.Text +"');";


        Essaie avec ça

        maCommande.CommandText = "INSERT INTO tbltest (fldnum, fldnom, fldmdp) VALUES ("+ textBoxNum.Text + ", '" + textBoxNom.Text + "', '"+ textBoxMdp.Text +"');";


        «Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
        Nicolas Boileau
        0
        1. Contributeur
          Polux, son code est en C#, pas en VB, donc on utilise
          +
          et pas
          &
          pour concaténer des chaines de caractères.
          0
        2. Oups exact ... j'ai corrigé

          Merci
          0