Hace un tiempo, di mis primeros pasos en Mono, con el desarrollo de unos programas muy básicos en Mono, que no iban mucho más allá del Hola Mundo.
Con dar unos pasos más en mi intrusión con Mono, en esta ocasión desarrollaré una aplicación básica, capaz de hacer altas y bajas en una base de datos MySQL.
$ sudo gacutil -i MySql.Data.dll
README
MySql.Data.dll
$ cat README
Descomprimir la .dll en alguna carpeta y correr el siguiente comando:
$ gacutil -i MySql.Data.dll
Y linkear desde monodevelop deacuerdo al tutorial en http://antoniomtz.org
MySql.Data installed into the gac (/usr/lib/mono/gac)
$
string strSQL = "SELECT id, nombre, apellidos FROM usuarios;";
comando.CommandText = strSQL;
IDataReader dr = comando.ExecuteReader();
while (dr.Read())
{
//dr["id"]
//dr["nombre"].ToString()
//dr["apellidos"].ToString())
}
dr.Close();
string strSQL = "DELETE FROM ..."
string strSQL = "INSERT INTO ..."
comando.CommandText = strSQL;
comando.ExecuteNonQuery();
public partial class MainWindow: Gtk.Window
{
IDbConnection conn;
public MainWindow (): base (Gtk.WindowType.Toplevel)
{
Build ();
conn = new MySqlConnection("Server=localhost;" +
"Database=test;" +
"User ID=usuario;" +
"Password=contrasena;" +
"Pooling=false"
);
treeview.AppendColumn("Id", new Gtk.CellRendererText(), "text", 0);
treeview.AppendColumn("Nombre", new Gtk.CellRendererText(), "text", 1);
treeview.AppendColumn("Apellido", new Gtk.CellRendererText(), "text", 2);
treeview_load();
}
protected void treeview_load()
{
conn.Open();
Gtk.ListStore liststoreUsuarios = new Gtk.ListStore (typeof(int), typeof(string), typeof(string));
treeview.Model = liststoreUsuarios;
IDbCommand comando = conn.CreateCommand();
string strSQL = "SELECT id, nombre, apellidos FROM usuarios;";
comando.CommandText = strSQL;
IDataReader dr = comando.ExecuteReader();
while (dr.Read())
{
liststoreUsuarios.AppendValues(dr["id"], dr["nombre"].ToString(), dr["apellidos"].ToString());
}
dr.Close();
conn.Close();
}
protected void OnDeleteEvent (object sender, DeleteEventArgs a)
{
Application.Quit ();
a.RetVal = true;
}
protected virtual void buttonAgregar_clic (object sender, System.EventArgs e)
{
IDbCommand comando = conn.CreateCommand();
conn.Open();
string strSQL = "INSERT INTO usuarios VALUES (" + textId.Text + ",'" + textNombre.Text + "','" + textApellidos.Text + "')";
comando.CommandText = strSQL;
comando.ExecuteNonQuery();
conn.Close();
treeview_load();
}
protected virtual void OnTreeviewCursorChanged (object sender, System.EventArgs e)
{
Gtk.TreeModel modelo;
Gtk.TreeIter iterSelected;
if ( treeview.Selection.GetSelected(out modelo, out iterSelected) )
{
textIdEliminar.Text = (string) modelo.GetValue(iterSelected,0).ToString();
}
}
protected virtual void OnButtonEliminarClicked (object sender, System.EventArgs e)
{
IDbCommand comando = conn.CreateCommand();
conn.Open();
string strSQL = "DELETE FROM usuarios WHERE id = " + textIdEliminar.Text ;
comando.CommandText = strSQL;
comando.ExecuteNonQuery();
conn.Close();
treeview_load();
}
}
Basado en la publicación original de Noticias, Eventos y mucho mas de SOFTWARE LIBRE
Suscribete al feed aquí
Una respuesta para "Mono con MySQL"
Gracias! Me ha sido de gran ayuda.
Pero has olvidado un pequeño detalle: Poner el código stetic que genera
la interfaz (Recursos->gui.stetic), sin él da algunos errores al compilar.
No obstante, muchas gracias
Comentarios: