문제

저는 C#.NET(Windows 상자에 있음)을 기본 언어로 사용하고 PostgreSQL을 백엔드 데이터베이스(백엔드는 Linux 상자에 있음)로 사용하는 프로젝트를 진행 중입니다.ODBC.NET을 사용하면 이 두 구성 요소를 쉽게 통합할 수 있다고 들었습니다.

실제로 C#과 PostgreSQL을 함께 작동하도록 설정한 경험이 있는 사람이 있습니까?그렇다면 해결 방법, 발견한 문제 등에 대한 제안 사항이 있습니까?

도움이 되었습니까?

해결책

저는 C#과 Postgres를 사용하여 작업하고 있습니다. Npgsql2 구성 요소이며 빠르게 작동하므로 추천합니다.

다음에서 다운로드할 수 있습니다. https://github.com/npgsql/Npgsql/releases

메모: 어떤 데이터베이스와도 작동하는 애플리케이션을 원한다면 다음을 사용할 수 있습니다. DbProviderFactory 수업을 듣고 쿼리를 사용하여 IDbConnection, IDb명령, IDataReader 및/또는 IDb트랜잭션 인터페이스.

다른 팁

Npgsql - PostGreSQL용 .Net 공급자는 탁월한 드라이버입니다.보다 전통적인 ADO.NET 프레임워크를 사용해 본 적이 있다면 정말 운이 좋을 것입니다.PostGreSQL 연결과 거의 동일해 보이는 Oracle에 연결하는 코드가 있습니다.Oracle에서 전환하고 뇌 세포를 재사용하기가 더 쉽습니다.

이는 SQL 호출로 수행하려는 모든 표준 작업을 지원하지만 호출도 지원합니다. 기능 (저장 프로시저).여기에는 다음을 포함합니다. 참조 커서.문서는 잘 작성되었으며 철학적이거나 난해하지 않으면서도 유용한 예제를 제공합니다.문서에서 바로 코드를 훔치면 즉시 작동합니다.

Francisco Figueiredo Jr와 팀은 이 작업을 훌륭하게 수행했습니다.
지금은 다음에서 이용 가능합니다. Github.
https://github.com/franciscojunior/Npgsql2

정보를 얻기에 더 좋은 사이트는 다음과 같습니다.http://npgsql.projects.postgresql.org/

문서를 읽어보세요!http://npgsql.projects.postgresql.org/docs/manual/UserManual.html

PostgreSQL용 Linq 공급자는 다음 위치에 있습니다. https://www.nuget.org/packages/linq2db.PostgreSQL/.

우리는 PostgreSql용 devart ado.net 데이터 공급자와 함께 Visual Studio 2005를 사용하여 여러 애플리케이션을 개발했습니다(http://www.devart.com/pgsqlnet/).

이 공급자의 장점 중 하나는 완전한 Visual Studio 지원을 제공한다는 것입니다.최신 버전에는 linq와 같은 새로운 프레임워크 기능이 모두 포함되어 있습니다.

오늘날 대부분의 언어/플랫폼(Java, .NET, PHP, Perl 등)은 거의 모든 DBMS(SQL Server, Firebird, MySQL, Oracle, PostgresSQL 등)에서 작동할 수 있으므로 1초도 걱정할 필요가 없습니다.물론 결함이나 작은 문제가 있을 수 있지만 큰 문제는 없습니다.

jalcom이 제안한 대로 쉽게 적응할 수 있는 애플리케이션을 가지려면 인터페이스 세트 또는 최소한 기본 클래스 세트(DbConnection, DbCommand 등)에 대해 프로그래밍해야 합니다.

너무 많은 문제가 있으면 안됩니다.다른 사람들이 언급했듯이 사용 가능한 .Net PostgreSQL 데이터 공급자가 많이 있습니다.주의해야 할 사항 중 하나는 Linq와 같은 기능을 사용하지 못할 수도 있다는 것입니다.

Linq 지원 부족으로 인해 중단되지 마십시오.내가 사용하는 패턴은 항상 내 데이터를 목록으로 반환한 다음 Linq로 반환하는 것입니다.나는 MySQL의 동일한 (분명히 모호한) Linq 표현식이 SQL Server에서와 동일한 데이터를 가져오지 않는다는 것을 발견했을 때 종교적으로 이 작업을 시작했습니다.

도구-->NuGet 패키지 관리자->관리자 Nuget 패키지 관리자로 이동하세요.

검색하다 NpgSQL 그런 다음 프로젝트를 선택하고 설치를 클릭하십시오.

샘플 코드

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();
            }            
        }

postgreSql에서는 대소문자를 구분하므로 대문자를 사용하지 마십시오.

Npgsql은 훌륭한 드라이버이지만 지금까지 발견한 유일한 문제는 숫자 값이 System.Decimal에 맞지 않아 옵션만 각 쿼리 또는 DB 스키마에 적합하다는 것입니다.

https://github.com/npgsql/Npgsql.EntityFrameworkCore.PostgreSQL/issues/438#issuecomment-486586272

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top