Conectando Mono con PostgreSQL un ejemplo

conectando-mono-con-postgresql-un-ejemplo

Conectando Mono con PostgreSQL un ejemplo

La Suite Mono (1.1.15) con el SGBD PostgreSQL 8.1.3 que son las versiones que utilizo, necesitamos descargar un driver de nombre npgsql (0.7.1) para ayudarnos a conectar a PostgreSQL, OK.

Aki esta la liga:

Npgsql0.7.1-linux-installer.tar.bz2

o visita la página del proyecto:

gborg.postgresql.org

por si hay uno más actual, la instalación del driver es muy sencilla es un binario instaló  en tu directorio personal este generó un directorio con un fichero que necesitamos (Npgsql.dll).

Bien el código es el siguiente:

GUI.cs
——————————————————–


using Glade;
using System;
using Gtk;

class Example {
[Widget] Window window1;
[Widget] Button button1;
[Widget] Entry entry1;
[Widget] Entry entry2;
[Widget] Entry entry3;
[Widget] Entry entry4;

public Example () {

Application.Init ();
Glade.XML gxml = new Glade.XML (null, “postgresql.glade”, “window1″, null);
gxml.Autoconnect ( this );

window1.DeleteEvent += new DeleteEventHandler (Salir);

button1.Clicked += new EventHandler ( Btn_0 );

window1.ShowAll ();

Application.Run ();
}

public static void Main () {

new Example ();
}

public void Salir (object o, DeleteEventArgs args) {

Application.Quit ();
Console.WriteLine (”Programa finalizado”);
}

public void Btn_0 (object o, EventArgs args) {

Console.WriteLine (”Guardando informacion …”);

if(entry4.Text.Length != 0) {
new Inserta (entry4.Text, entry1.Text, entry2.Text, entry3.Text);

entry4.Text = “”;
entry1.Text = “”;
entry2.Text = “”;
entry3.Text = “”;
}
else
Console.WriteLine(”El campo ID no acepta datos nulos … :-( ”);
}
}
// mcs -pkg:glade-sharp -pkg:gtk-sharp
-resource:postgresql.glade -r:System.Data.dll -r:Npgsql.dll GUI.cs Inserta.cs
——————————————————–

Inserta.cs
——————————————————–
// Para insertar un dato en la base de datos Empleado debe existir una tabla de
// nombre empleado con atributos de:
// Nombre(varchar),
// Sueldo(float),
// Puesto(varchar)
// Atte GGC :-)

using System;
using System.Data;
using Npgsql;

class Inserta {

public Inserta (string args1, string args2, string args3, string args4) {

NpgsqlConnection conn = new NpgsqlConnection(”Server=localhost;Port=5432;User Id=glezc841;Database=Empleado;”);

conn.Open ();

NpgsqlCommand c_insert = new NpgsqlCommand (”insert into empleado values (” + args1 + “,’” + args2 + “‘,” + args3 + “,’” + args4 + “‘)”, conn);

Int32 rowsaffected;

rowsaffected = c_insert.ExecuteNonQuery();
conn.Close ();
}
}

——————————————————–

Para compilarlo usa lo siguiente:


mcs -pkg:glade-sharp -pkg:gtk-sharp -resource:postgresql.glade -r:System.Data.dll -r:Npgsql.dll GUI.cs Inserta.cs

y la interfaz que glade-2 nos prorporciona es:


postgresql.glade
--------------------------------------------------------

postgresql.glade

——————————————————–
o utiliza el fichero Makefile


Makefile
--------------------------------------------------------

# Sun Apr 2 10:50:23 2006
CC= mcs
FLAGS= -pkg:glade-sharp -pkg:gtk-sharp
RESOURCE= -resource:postgresql.glade
SOURCE= GUI.cs Inserta.cs
OTHER_FLAGS= -r:System.Data.dll -r:Npgsql.dll

GUI.exe: ${SOURCE}
${CC} ${FLAGS} ${RESOURCE} ${SOURCE} ${OTHER_FLAGS}

clean:
rm -rf GUI.exe

——————————————————–

y en shell tipea

$ make

o

$ make clean

Todos los ficheros fuente (*.cs,*.glade, Makefile, ) deben estar en un directorio y el fichero Npgsql.dll o bien dale la ruta para encontrarlo a la hora de compilarlo con mcs, o dentro del Makefile.

Atte GGC :-P

PD Diviertete.


Deja un comentario