¿Cómo conecto con la base de datos mysql utilizando el programa C Sharp?

Estoy creando mi primer sistema en C sharp, y el primer problema con el que me encuentro es como conecto con la base de datos mysql, ya tengo el driver y como root, me despliega las bases de datos, las tablas y los campos de las bases de datos que quiero utilizar, pero con un usuario distinto a root, no, me manda un mensaje que no encuentra los proc... ¿qué es eso y como lo puedo solucionar?

1 respuesta

Respuesta
1
¿Has creado otros usuarios con permisos de administrador en mysql?
Con mysql Administrator he creado un usuario y en el administrador de usuarios le he dado todos los permisos de root, con respecto a la base de datos que quiero manipular. ¿Cuál sera el error?
Así es difícil saber, ¿podrías pegar tu código de conexión?
Para empezar, no tengo código, todo lo hago desde el Visual Studio 2005, donde dice agregar fuente de datos, y es ahí donde me da la conexión como root y no con la otra cuenta de usuario...
Ah, entonces eso depende de tu driver, porque vs2005 no tiene soporte (ni lo tendrá) para mysql, y tu driver al parecer tiene soporte para el DataSet Designer, no todos lo tienen intenta entonces hacer una conexión a mysql a mano:
Mysqlconnection, mysqladapter son ficticios no se como se llaman con tu driver, (debe venir en la documentación o ayuda de el driver, así como algunos ejemplos de cadenas de conexión.)
El nombre y password de la conexión debe ser incluido
mysqlConnection Conexion = new mysqlConnection();
            Conexion.ConnectionString = "provedor mysql, direccion, password y usuario"
           ComandoMysql Comando = this.Conexion.CreateCommand();
            Comando.CommandText = "select * from alguna tabla";
           mySqlAdapter Adaptador = new mySqlAdapter();
            Adaptador.SelectCommand = Comando;
            DataSet miDataSet = new DataSet();
            Adaptador.Fill(miDataSet, nombredelaTabla);
            Conexion.Close();
es una simple consulta que te llena un dataset que podras enlazar a alguna DataGrid:
miDataGrid.DataSource = miDataSet;
Si existe algún error checalo con el depurador paso a paso y en cuanto intentes hacer la conexión te saltará el error con su descripción.
Tengo el siguiente código:
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
using MySql.Data.*;
// para compilar este programa debemos dar en simbolo de sistema este path
c:\WINDOWS\Microsoft.NET\Framework\v3.5\csc.exe /target:winexe c:\csharp\indexLogin.cs
public class indexLogin : Form
{
    //string nombre, clave;
    public static void Main()
    {
    indexLogin MyForm = new indexLogin();
    MyForm.Size = new Size(530,240);
    Application.Run(MyForm);
    }
    public indexLogin()
    {
    //Colocando la imagen.
    PictureBox imagen_sic = new PictureBox();
    imagen_sic.Load(@"c:\csharp\images\sic.png");
    imagen_sic.Location = new Point(170,25);
    imagen_sic.Size = new Size(100,72);
    Controls.Add(imagen_sic);
    //Aqui vamos a Crear las Etiquetas para nuestro Formulario.
    Label lbl_Titulo = new Label();
    lbl_Titulo.Location = new Point(25,25);
    lbl_Titulo.Text = "Datos de Usuarios";
    lbl_Titulo.Size = new Size(175,25);
    Controls.Add(lbl_Titulo);
    Label lbl_Usuario = new Label();
    lbl_Usuario.Location = new Point(25,75);
    lbl_Usuario.Text = "Nombre de Usuario";
    lbl_Usuario.Size = new Size(175, 25);
    Controls.Add(lbl_Usuario);
    Label lbl_Clave = new Label();
    lbl_Clave.Location = new Point(25,125);
    lbl_Clave.Text = "Clave de Usuario";
    lbl_Clave.Size = new Size(175, 25);
    Controls.Add(lbl_Clave);
    //Codigo que inserta las cajas de texto en el formulario
    TextBox txt_Usuario = new TextBox();
    txt_Usuario.Location = new Point(25,100);
    txt_Usuario.Size = new Size(175,25);
    Controls.Add(txt_Usuario);
    string Usuario;
    Usuario = txt_Usuario.Text;
    TextBox txt_Clave = new TextBox();
    txt_Clave.Location = new Point(25,150);
    txt_Clave.Size = new Size(175,25);
    Controls.Add(txt_Clave);
    string Clave;
    Clave = txt_Clave.Text;
    //Aquí estamos creando los botones Aceptar y salir para nuestro formulario de entrada al sistema.
    Button Aceptar_btn = new Button();
    Text = "Sistema De Registro De Facturas- RFacturas -";
    Aceptar_btn.Location = new Point(25,180);
    Aceptar_btn.Text = "Aceptar";
    Aceptar_btn.Click += new EventHandler(Aceptar_btnClicked);
    Controls.Add(Aceptar_btn);
    Button Salir_btn = new Button();
    Salir_btn.Location = new Point(125,180);
    Salir_btn.Text = "Salir";
    Salir_btn.Click += new EventHandler(Salir_btnClicked);
    Controls.Add(Salir_btn);
    }
    public void Aceptar_btnClicked(object sender, EventArgs e)
    {
    mysqlClients Conexion = new mysqlClients();
            Conexion.ConnectionString = "localhost, rFactura, regFacturas"
           ComandoMysql Comando = this.Conexion.CreateCommand();
            Comando.CommandText = "select * from usuarios";
           mySqlAdapter Adaptador = new mySqlAdapter();
            Adaptador.SelectCommand = Comando;
            DataSet miDataSet = new DataSet();
            Adaptador.Fill(miDataSet, usuarios);
            Conexion.Close();
    MessageBox.Show("La Conexion se ha realizado con exito!!!, Felices Programas en CSharp");
    }
    public void Salir_btnClicked(object sender, EventArgs Arguments)
    {
    Application.Exit();
    }
}
Aquí ya tengo incluido el código que me mandaste, cabe decir que este código lo he hecho con el block de notas, es una sencilla aplicación de logueo de usuario, lo que quiero hacer es que me consulte los usuarios que están dados de alta en la base de datos y me los compare con los datos que el usuario ha puesto en sus respectivos textbos (txt_Usuario, y txt_Clave), si es un usuario registrado que me lleve al siguiente formulario (index.cs) y se lleve los datos del usuario para insertarlos en unos label y así saber que usuario esta usando el sistema.
Al principio lo comencé a hacer en visual studio 2005, pero decidí hacerlo "a pelo" para aprender mejor el lenguaje".
Al intentar conectar con nla base de datos Mysql, me tira el siguiente error el compilador de csharp, tengo la version 3.5:
c:\csharp\indeLogin.cs (6, 7): error CS0246: The type or namespace name 'MySql' could not be found (are you missing a using directive or an assembly reference?).
Espero que me puedas seguir ayudando, desde ya muchas gracias.
¿Qué utilizas para conectarte con MySql? (¿Cómo se llama el driver o la dll?), al parecer no tienes la referencia o la escribiste mal y el compilador no sabe que hacer con 'MySql', también revisa tu "ConnctionString" ya que te falta especificar el usuario y el password, así te usara el usuario por default "root".
Las .dll se llaman MySql.Data.dll, Mysql. Data.Entity.dll, y MySql. Data.CF.dll, no se cual de todas sea la que ocupe mi sistema (me imagino que Mysql. Data.dll) así que las copie las tres a la carpeta donde tengo el archivo principal de mi sistema c:\csharp, ah y el usuario es regFacturas y el password es rfactura, si te fijas si viene especificado:
Conexion.ConnectionString = "localhost, rFactura, regFacturas"
Muchas gracias por tu paciencia.
¿Y en la connection String como sabe tu servidor de base de datos que base de datos usas?, le estas indicando el servidor local (127.0.0.1) el usuario y el password pero no que base de datos usará, checa tu cadena de conexión. Por ejemplo con el conector standard mysql NET seria la siguiente:
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
Checa tu documentación o puedes accesar a www.connectionstrings.com para ver como va la cadena de conexión.
También es tu decisión y no hay problema aprender a pie c# pero con visual studio o sharpdevelop puedes hacerlo más rapido solo debes comprender la estructura.
Saludos.
¿Paciencia? Al contrario gracias por tu paciencia!, ya llevas varios días con esto.
Hola, No creas, he estado adelantándole al proyecto, creando otros formularios que de igual manera utilizan una conexión a mi base de datos...
en mi Conexion.ConnectionString = "Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;" ya he corregido y cambiado los datos para tener la conexion, pero ahora me surge otro problema de compilador...
error CS0246: The type or namespace name 'MySql' could not be found (are you missing a using directive or an assembly reference?)
Tengo el Archivo MySql. Data.Dll en la misma carpeta donde tengo el archivo indexLogin.cs, es decir el archivo principal de mi sistema, ¿qué puede ser ese error y como lo soluciono?
Lo siento a mano la verdad nunca he hecho la referencia, el problema es que no tienes la referencia a MySql. Data.Dll, los namespaces son como carpetas (similar) donde contiene las clases y objetos de tu programa, en este caso tienes que decirle al compilador de donde sacaste esos objetos y así poder ocupar las clases que vienen en tu DLL.
Eso se hace al compilar pero nunca lo he intentado, hazlo con vstudio agregas como referencia MySQL. Data.dll al proyecto (botón derecho en el explorador del proyecto y Agregar Referencia).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas