yo apenas abro la aplicacion quiero abrir la conexion y luego ejecutar sentencias del tipo insert.
lo que hice fue crear esta clase :
Código:
y luego en el programa principal puse esto:public class MYSQL { private string Server; private string Database; private string Usuario; private string Pass; private string sentencia; public MySqlConnection Conexion; public bool exito; public MYSQL(string server, string database, string usuario, string pass) { Server = server; Database = database; Usuario = usuario; Pass = pass; sentencia = "SERVER=" + server + ";" + "DATABASE=" + database + ";" + "UID=" + usuario + ";" + "PASSWORD=" + pass + ";"; MySqlConnection Conexion = new MySqlConnection(sentencia); try { Conexion.Open(); exito = true; } catch (Exception e) { MessageBox.Show(e.Message); } } public void Comando(string cmdString) { MySqlCommand comando = new MySqlCommand(cmdString, Conexion); comando.ExecuteNonQuery(); } }
Código:
static class Program { /// <summary> /// Punto de entrada principal para la aplicación. /// </summary> // [STAThread] public static MYSQL hpumpSQL = new MYSQL("localhost", "hpump", "user", "xxx"); static void Main() { if (hpumpSQL.exito == true) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } }
y luego dentro del Winform intento ejecutar esto cuando el usuario hace un clic:
Código:
private void button1_Click_1(object sender, EventArgs e) { Program.hpumpSQL.Comando("insert into surtidores set numero = 222;"); }
la verdad le estuve dando vueltas al asunto y no entiendo por que no funciona. cuando hago el debug me tira " Connection must be valid and open".
pero yo en el constructor de la clase MYSQL estoy abriendo la conexion, aparte el winform lo abre perfecto, eso quiere decir que la conexion se pudo abrir, sino me hubiese tirado una exepcion.
Gracias