with npgsqlconnection net framework asp c# .net postgresql

npgsqlconnection - C#.NET+PostgreSQL



postgresql.net core (8)

Estoy buscando trabajar en un proyecto que usa C # .NET (sentado en una caja de Windows) como idioma principal y PostgreSQL como la base de datos back-end (back-end está sentado en una caja de linux). Escuché que ODBC.NET permite una fácil integración de estos dos componentes.

¿Alguien ha tenido experiencia en configurar C # y PostgreSQL para trabajar juntos? Si es así, ¿tiene alguna sugerencia sobre cómo hacerlo, problemas que ha encontrado, etc.?


En la actualidad, la mayoría de los lenguajes / plataformas (Java, .NET, PHP, Perl, etc.) pueden funcionar con casi cualquier DBMS (SQL Server, Firebird, MySQL, Oracle, PostgresSQL, etc.), así que no me preocuparía por un segundo. Claro que puede haber problemas técnicos y pequeños problemas, pero no se detiene.

Como sugirió jalcom, debe programar contra un conjunto de interfaces o al menos un conjunto de clases base (DbConnection, DbCommand, etc.) para tener una aplicación fácilmente adaptable.


Estoy trabajando con C # y Postgres usando el componente Npgsql2 , y funcionan rápido, te lo recomiendo.

Puede descargar desde https://github.com/npgsql/Npgsql/releases

Nota: Si desea una aplicación que funcione con cualquier base de datos, puede usar la clase DbProviderFactory y realizar sus consultas utilizando las interfaces IDbConnection , IDbCommand , IDataReader y / o IDbTransaction .



Hemos desarrollado varias aplicaciones utilizando visual studio 2005 con el proveedor de datos devart ado.net para PostgreSql ( http://www.devart.com/pgsqlnet/ ).

Una de las ventajas de este proveedor es que brinda soporte completo de Visual Studio. Las últimas versiones incluyen todas las nuevas características de framework como linq.


No deberías tener demasiados problemas. Como han mencionado otros, hay muchos proveedores de datos .Net PostgreSQL disponibles. Una cosa que debes tener en cuenta es que funciones como Linq probablemente no se puedan usar.


No dejes que la falta de apoyo de Linq te detenga. Un patrón que uso es devolver siempre mis datos en listas, y luego alejarme. Empecé a hacer esto religiosamente cuando descubrí que la misma expresión de Linq (ciertamente desconocida) en MySQL no traía los mismos datos que en el servidor Sql.


Simplemente vaya a la herramienta -> NuGet Package Manager -> Manager Nuget Package Manager

busque NpgSql y luego seleccione su proyecto y haga clic en Instalar

Código de muestra

public void Demo() { NpgsqlConnection connection = new NpgsqlConnection(); connection = d_connection; // your connection string connection.Open(); NpgsqlCommand cmd = new NpgsqlCommand(); try { cmd.Connection = connection; cmd.CommandText = "select * from your table name"; cmd.CommandType = System.Data.CommandType.Text; using (var dataReader = cmd.ExecuteReader()) { while (dataReader.Read()) { string answer= dataReader.IsDBNull(0) ? "" : dataReader.GetString(0); } dataReader.Dispose(); } } catch (Exception e) { } finally { cmd.Dispose(); connection.Dispose(); } }

No use mayúsculas en postgreSql porque distingue entre mayúsculas y minúsculas.


Npgsql - .Net Provider para PostGreSQL - es un excelente controlador. Si ha utilizado el framework ADO.NET más tradicional, tiene mucha suerte aquí. Tengo un código que se conecta a Oracle que se ve casi idéntico a las conexiones PostGreSQL. Más fácil de hacer la transición fuera de Oracle y reutilizar las células cerebrales.

Es compatible con todas las cosas estándar que desearía hacer con la llamada a SQL, pero también es compatible con las funciones de llamada (procedimientos almacenados). Esto incluye la devolución de los cursores de referencia . La documentación está bien escrita y proporciona ejemplos útiles sin llegar a ser filosófica o arcana. Roba el código directamente de la documentación y funcionará instantáneamente.

Francisco Figueiredo, Jr. y su equipo han hecho un gran trabajo con esto.
Ahora está disponible en Github .
https://github.com/franciscojunior/Npgsql2

El mejor sitio para obtener información es: http://npgsql.projects.postgresql.org/

Lee la documentación! http://npgsql.projects.postgresql.org/docs/manual/UserManual.html