Por si les sive, nosotros utilizamos Corelab Postgresqldirect, es un control
simple d usar, se integra al IDe de VS y se puede usar con las librerias
Enterprise Library de microsoft lo que permite usar SP de manera simple y
hacerlo compatible con otros motores (admás de otros beneficios, como no
acceder a la base mediante Select (manejando correctamnt los permisos y demás)
Saludos.
Yoel.
ejemplo simple sin captura de errores
public static int Insert(string razon_social,string direccion,int id_pais,int
id_ciudad,string localidad,string cod_postal,string telefono,string fax,string
mail,string cuit,int id_tipo_iva,int id_dominio,string requisito_gral,string
codigo,string contacto,Boolean enviarsms,Boolean enviarmail,string
observaciones,int id_cliente_tipo,string celular,string IB,int app_id_menu, int
app_id_usuario)
{
// Agrega un registro
Database db = DatabaseFactory.CreateDatabase("ConnPgCore"); //string de
conexión (Postgresql, Oracle, Mysql, SQLServer, etc)
DbCommand dbCommand = db.GetStoredProcCommand("public.cliente_insert");
db.AddParameter(dbCommand,"l_razon_social", DbType.String,
ParameterDirection.Input,"l_razon_social", DataRowVersion.Current,
razon_social);
db.AddParameter(dbCommand,"l_direccion", DbType.String,
ParameterDirection.Input,"l_direccion", DataRowVersion.Current, direccion);
db.AddParameter(dbCommand,"l_id_pais", DbType.Int32,
ParameterDirection.Input,"l_id_pais", DataRowVersion.Current, id_pais);
db.AddParameter(dbCommand,"l_id_ciudad", DbType.Int32,
ParameterDirection.Input,"l_id_ciudad", DataRowVersion.Current, id_ciudad);
db.AddParameter(dbCommand,"l_localidad", DbType.String,
ParameterDirection.Input,"l_localidad", DataRowVersion.Current, localidad);
db.AddParameter(dbCommand,"l_cod_postal", DbType.String,
ParameterDirection.Input,"l_cod_postal", DataRowVersion.Current, cod_postal);
db.AddParameter(dbCommand,"l_telefono", DbType.String,
ParameterDirection.Input,"l_telefono", DataRowVersion.Current, telefono);
db.AddParameter(dbCommand,"l_fax", DbType.String,
ParameterDirection.Input,"l_fax", DataRowVersion.Current, fax);
db.AddParameter(dbCommand,"l_mail", DbType.String,
ParameterDirection.Input,"l_mail", DataRowVersion.Current, mail);
db.AddParameter(dbCommand,"l_cuit", DbType.String,
ParameterDirection.Input,"l_cuit", DataRowVersion.Current, cuit);
db.AddParameter(dbCommand,"l_id_tipo_iva", DbType.Int32,
ParameterDirection.Input,"l_id_tipo_iva", DataRowVersion.Current, id_tipo_iva);
db.AddParameter(dbCommand,"l_id_dominio", DbType.Int32,
ParameterDirection.Input,"l_id_dominio", DataRowVersion.Current, id_dominio);
db.AddParameter(dbCommand,"l_requisito_gral", DbType.String,
ParameterDirection.Input,"l_requisito_gral", DataRowVersion.Current,
requisito_gral);
db.AddParameter(dbCommand,"l_codigo", DbType.String,
ParameterDirection.Input,"l_codigo", DataRowVersion.Current, codigo);
db.AddParameter(dbCommand,"l_contacto", DbType.String,
ParameterDirection.Input,"l_contacto", DataRowVersion.Current, contacto);
db.AddParameter(dbCommand,"l_enviarsms", DbType.Boolean,
ParameterDirection.Input,"l_enviarsms", DataRowVersion.Current, enviarsms);
db.AddParameter(dbCommand,"l_enviarmail", DbType.Boolean,
ParameterDirection.Input,"l_enviarmail", DataRowVersion.Current, enviarmail);
db.AddParameter(dbCommand,"l_observaciones", DbType.String,
ParameterDirection.Input,"l_observaciones", DataRowVersion.Current,
observaciones);
db.AddParameter(dbCommand,"l_id_cliente_tipo", DbType.Int32,
ParameterDirection.Input,"l_id_cliente_tipo", DataRowVersion.Current,
id_cliente_tipo);
db.AddParameter(dbCommand,"l_celular", DbType.String,
ParameterDirection.Input,"l_celular", DataRowVersion.Current, celular);
db.AddParameter(dbCommand, "l_ib", DbType.String, ParameterDirection.Input,
"l_ib", DataRowVersion.Current,IB);
db.AddParameter(dbCommand,"l_app_id_menu", DbType.Int32,
ParameterDirection.Input,"l_app_id_menu", DataRowVersion.Current, app_id_menu );
db.AddParameter(dbCommand,"l_app_id_usuario", DbType.Int32,
ParameterDirection.Input,"l_app_id_usuario", DataRowVersion.Current,
app_id_usuario );
using (DbConnection cnn = db.CreateConnection())
{
cnn.Open();
DbTransaction tran = cnn.BeginTransaction();
try
{
IDataReader idr;
idr = db.ExecuteReader(dbCommand, tran);
tran.Commit();
idr.Read();
int id = Convert.ToInt16(idr.GetValue(0));
return id;
}
catch (Exception ex)
{
tran.Rollback();
return -1;
}
finally
{
cnn.Close();
}
}
}
----- Original Message -----
From: Manuel Sánchez Tirado Calderón
To: [EMAIL PROTECTED] ; [email protected]
Sent: Wednesday, November 05, 2008 11:04 AM
Subject: Re: [pgsql-es-ayuda] ayuda con postgres y c#
Marcelo,
Ojala puedas poner a disposición el procedimiento para el uso de ese control
Npgsql en una conexion de VS a Postgres, ademas de como mostrar los datos de un
query en un DATAGRID.
Te agradesco por la ayuda
2008/11/4 marcelo Cortez <[EMAIL PROTECTED]>
Gente
Gracias por responder, pero ya lo solucione. y voy a decir como, para el
resto del universo, Npgsql es un control dot net realizado para postgres
integrado al ide de VS, tambien podria poner algo de codigo pero no lo tengo a
mano.asi que si lo necesitan avisen
saludos y gracias
mdc
--- El mar 4-nov-08, Juan Ramirez <[EMAIL PROTECTED]> escribió:
> De: Juan Ramirez <[EMAIL PROTECTED]>
> Asunto: RE: [pgsql-es-ayuda] ayuda con postgres y c#
> Para: "PostGreSQL Lista de Ayuda" <[email protected]>
> Fecha: martes, 4 de noviembre de 2008, 6:51 pm
> > Date: Tue, 4 Nov 2008 11:13:41 -0800
> > From: [EMAIL PROTECTED]
> > Subject: [pgsql-es-ayuda] ayuda con postgres y c#
> > To: [email protected]
> >
> > Gente
> >
> > Estoy tratando de hacer una dataGridView con Vs 2008 y
> postgres. en verdad la ventana tiene un texto e intento
> hacer una busqueda incremental o filtro
> > me podrian ayudar.?
> > como conecto?
> > que tengo qe cargar?
> > codigo de ejemplo sera agradecido ;)
> >
> > saludos
> >
> > mdc
>
> Disculpa Marcelo, pero no entiendo cual es tu problema, leo
> que querés hacer una busqueda, pero cuando dices "como
> conecto?" me confundo en suponer si ya puedes
> conectarte a PostGreSQL desde c# ...
>
> Pregunto: ya podes establecer una conexión a PostGreSQL
> desde c#, ya podes cargar los datos al gridView ?¿
>
> _________________________________________________________________
> Discover the new Windows Vista
> http://search.msn.com/results.aspx?q=windows+vista&mkt=en-US&form=QBRE
Yahoo! Cocina
Recetas prácticas y comida saludable
http://ar.mujer.yahoo.com/cocina/
--
TIP 8: explain analyze es tu amigo