Connexion à une base de données en local

Résolu/Fermé
cocodu67... Messages postés 3162 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 20 novembre 2024 - Modifié par cocodu67... le 26/01/2014 à 00:52
cocodu67... Messages postés 3162 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 20 novembre 2024 - 26 janv. 2014 à 20:48
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.
A voir également:

4 réponses

cocodu67... Messages postés 3162 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 20 novembre 2024 145
Modifié par cocodu67... le 26/01/2014 à 13:51
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
cocodu67... Messages postés 3162 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 20 novembre 2024 145
26 janv. 2014 à 20:48
C'est bon j'ai trouvé, j'ai utilisé https://dev.mysql.com/downloads/connector/cpp/ et https://webman.developpez.com/articles/aspnet/sqlparameter/csharp/

Merci à vous d'avoir essayé :)
1
cocodu67... Messages postés 3162 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 20 novembre 2024 145
26 janv. 2014 à 13:35
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
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
Modifié par Polux31 le 26/01/2014 à 13:54
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
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
26 janv. 2014 à 13:43
Polux, son code est en C#, pas en VB, donc on utilise
+
et pas
&
pour concaténer des chaines de caractères.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
26 janv. 2014 à 13:55
Oups exact ... j'ai corrigé

Merci
0
cocodu67... Messages postés 3162 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 20 novembre 2024 145
26 janv. 2014 à 13:55
0