06.-Monodevelop Conectarnos a una bd SQLite
Introducción
Para empezar vamos a ver la ventajas de crear un programa en con Monodevelop y como base de datos SqLite, y la primer y desde mi punto de vista la mas importante es que podemos crear aplicaciones portables completamente portables, en otras palabras solo debemos copiar la carpeta y en teoria podriamos llevarnos el programa y la bd a donde queramos y debe funcionar. Imagínate tomar la carpeta de tu programa y llevarla a Windows, Linux y Mac, sin tener que hacer modificaciones.
En este tutorial voy a explicar como conectar una bd sqlite a monodevelop en c#.
Procedimientos
Con fines prácticos podemos descargar esta bd:
Base de datos
La debemos guardar en la hubicacion de nuestro proyecto (en mi caso es /home/eugenio/Projects/sqlite/sqlite/bin/Debug)
Ahora solo debemos crear un proyecto y pegar este codigo:
using System;
using Gtk;
using System.Data;
using Mono.Data.Sqlite;
public partial class MainWindow : Gtk.Window
{
//Cadena de conexion a la bd
string connetionString;
//Query que va extraer los datos de la tabla
string query;
SqliteCommand cmd;
SqliteConnection conn;
SqliteDataReader dr;
public MainWindow() : base(Gtk.WindowType.Toplevel)
{
Build();
connetionString = "Data Source=data.db;Version=3;New=True;Compress=True;";
conn = new SqliteConnection(connetionString);
query = "select id,nombre,direccion from personal";
try
{
treeview.AppendColumn("id", new CellRendererText(), "text", 0);
treeview.AppendColumn("nombre", new CellRendererText(), "text", 1);
treeview.AppendColumn("direccion", new CellRendererText(), "text", 2);
ListStore data = new ListStore(typeof(string), typeof(string), typeof(string));
conn.Open();
cmd = new SqliteCommand(query,conn ); dr = cmd.ExecuteReader();
while (dr.Read ())
{
data.AppendValues(dr[0].ToString(), dr[1].ToString(), dr[2].ToString());
}
treeview.Model = data;
dr.Close();
conn.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
protected void OnDeleteEvent(object sender, DeleteEventArgs a)
{
Application.Quit();
a.RetVal = true;
}
}