2017-07-27 1 views
-1

Bon, j'essaye de faire un projet simple pour l'école, dans lequel l'enseignant nous laisse utiliser l'utilisateur root pour que nous puissions tout connecter aux bases de données. Mais lors de la compilation, il semble y avoir une erreur dans ma classe que j'utilise pour se connecter à MySql:Est-ce une erreur dans ma classe? La connexion MySql ne fonctionne pas correctement [Visual C#]

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using MySql.Data.MySqlClient; 
using System.Data.SqlClient; 

namespace BuscarDatos 
{ 
    class ClaseConectar 
    { 
     public static MySqlConnection obtener_conexion() 
     { 
      MySqlConnectionStringBuilder c = new MySqlConnectionStringBuilder(); 
      c.Server = "localhost"; 
      c.UserID = "root"; 
      c.Password = "*******"; //password 
      c.Database = "proyecto_almacen"; //my database name already created 

      MySqlConnection con = new MySqlConnection(); 
      con.Open(); 
      return con; 
     } 
    } 
} 

Je continue à obtenir cette erreur:

MySql.Data.MySqlClient.MySqlException: 'Authentication to host '' for user '' using method 'mysql_native_password' failed with message: Access denied for user ''@'xxxxxxxxxx' (using password: NO)' 

aussi, je l'ai changé MySqlConnection depuis que je suis une erreur avant dans une autre classe, sur la façon dont je ne pouvais pas convertir MySql en Sql seulement. Voici un exemple de la classe pour laquelle je l'ai changé:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Data.SqlClient; 
using MySql.Data.MySqlClient; 

namespace BuscarDatos 
{ 
    class Agregar 
    { 
     public static int AddName (string pNombre,string pAp_paterno, string pAp_materno, string pMatricula, 
      string pDireccion, string pTelefono) 
     { 
      int resultado = 0; 
      MySqlConnection con = ClaseConectar.obtener_conexion(); 
      MySqlCommand Comando = new MySqlCommand(string.Format("Insert into maestros (nombre, ap_paterno, ap_materno, matricula," + 
       "direccion, telefono) values('{0}','{1}','{2}','{3}','{4}','{5}')", pNombre, pAp_paterno, pAp_materno, 
       pMatricula, pDireccion, pTelefono), con); 
      resultado = Comando.ExecuteNonQuery(); 
      con.Close(); 
      return resultado; 
     } 

    } 
} 

Répondre

0

Vous ne donnez à la connexion aucune chaîne de connexion. Il ne sait pas quoi ouvrir.

Lorsque vous créez le MysqlConnectionStringBuilder, il est complètement distinct du MySqlConnection que vous créez. Vous devez les utiliser ensemble:

MySqlConnection con = new MySqlConnection(c.ConnectionString); 

De cette façon, vous donnez la chaîne de connexion générée à l'objet de connexion.