Conexion a Mysql desde c#

SiKoPaTa

Hola buenas perdonad mi desconocimiento, estoy creando mi primera aplicación en c# y tengo que hacer conexiones a mysql.

Tengo creada una clase con:

 class DBConnect
    {
        private MySqlConnection connection;
        private string server;
        private string database;
        private string uid;
        private string password;

    //Constructor
    public DBConnect()
    {
        Initialize();
    }
    private void Initialize()
    {
        //Conexion con la base de datos
        server = "192.168.2.104";
        database = "bar";
        uid = "root";
        password = "";
        string ConnectionString;
        ConnectionString = "SERVER=" + server + ";" + "DATABASE=" +
    database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";

        connection = new MySqlConnection(ConnectionString);
    }                

Ahora lo que quiero es no tener que volver a introducir todos los datos de la conexion con la BD cada vez que quiero interactuar con ella, por ejemplo con un button, que deberia añadir en el:

[code]    private void button1_Click(object sender, EventArgs e)
   {
    }

[/code]

para que esto fuese posible? MUCHISIMAS GRACIAS:

r2d2rigo

Create el objeto DBConnect en el constructor del formulario y reusalo siempre.

SiKoPaTa
            DBConnect con;
            con = new DBConnect();

¿?

eXtreM3

Declara una variable global tal que

private string conexionBaseDatos = "Database=nombre_bd;Data Source=localhost;User Id=nombre_user;Password=pwd";

y después para hacer una consulta:

string consulta = "SELECT blablabla";
MySqlConnection conmysql = new MySqlConnection(this.conexionBaseDatos);
MySqlDataAdapter adaptador = new MySqlDataAdapter(consulta, conmysql);

cuando hagas INSERTS, DELETES y UPDATES no te olvides de abrir y cerrar la conexión:

MySqlCommand comando = new MySqlCommand(consulta, conmysql);
conmysql.Open();
comando.ExecuteNonQuery();
conmysql.Close();

esto iría justo debajo del adaptador declarado previamente.

Soltrac

en vez de usar close() para que no se te olvide tienes 2 opciones:

1) Usar una conexión abierta siempre estática -> patrón singleton

2) Usar el using, es más, deberían obligar a usar using que la gente se está malacostumbrando.

SiKoPaTa

Muchas gracias a todos

1 respuesta
eXtreM3

#6 te contesto por aquí al mp, que no estoy seguro de que por mps se pueda poner el tag code

            MySqlConnection consql = new MySqlConnection();
            MySqlCommand command = new MySqlCommand();
            MySqlDataAdapter adaptador = new MySqlDataAdapter();
            DataSet ds = new DataSet();

        command.Connection = consql;
        consql.ConnectionString = "Database=nombre_bd;Data Source=localhost;User Id=nombre_user;Password=pwd";
        consql.Open();

        command.CommandText = "SELECT * FROM blablabla";

        adaptador.SelectCommand = command;
        adaptador.Fill(ds, "cursos");

        consql.Close();

Hace mucho que no programo en c# , estoy tirando de mi proyecto final, de esta manera rellenaba un datagrid. Creo que no puedo ayudarte más :( xD

edit: "cursos" es el nombre del DataSet

Usuarios habituales

  • eXtreM3
  • SiKoPaTa
  • Soltrac
  • r2d2rigo