C#.NET + PostgreSQL

Szukam pracy nad projektem, który wykorzystuje C#.NET (siedząc na polu windows) jako podstawowy język i PostgreSQL jako baza danych zaplecza (zaplecze znajduje się na polu linux). Słyszałem, że ODBC.NET pozwala na łatwą integrację tych dwóch komponentów.

Czy ktoś miał doświadczenie w ustawianiu C# i PostgreSQL do współpracy? Jeśli tak, czy masz jakieś sugestie, jak to zrobić, problemy, które znalazłeś, itp.?

Author: akdom, 2008-09-06

8 answers

Pracuję z C# i Postgresem używając komponentu Npgsql2 i działają szybko, polecam.

Możesz pobrać z https://github.com/npgsql/Npgsql/releases

Uwaga: Jeśli chcesz mieć aplikację działającą z dowolną bazą danych, możesz użyć klasy DbProviderFactory i tworzyć zapytania używając IDbConnection, IDbCommand, interfejsy IDataReader i / lub idbtransaction.

 51
Author: jalcom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-18 09:27:53

Npgsql - dostawca. Net dla PostGreSQL - jest doskonałym sterownikiem. Jeśli korzystałeś z bardziej tradycyjnych ADO.NET framework masz tu naprawdę szczęście. Mam kod, który łączy się z Oracle, który wygląda prawie identycznie jak połączenia PostGreSQL. Łatwiejsze przejście od wyroczni i ponowne wykorzystanie komórek mózgowych.

Obsługuje wszystkie standardowe rzeczy, które chcesz zrobić z wywołaniem SQL, ale obsługuje również wywołanie Funkcji (procedur składowanych). Obejmuje to zwracanie kursorów referencyjnych . Dokumentacja jest dobrze napisana i dostarcza użytecznych przykładów bez filozoficznych lub tajemnych. Wykradnij kod bezpośrednio z Dokumentacji i będzie działać natychmiast.

Francisco Figueiredo, Jr i zespół wykonali świetną robotę z tym.
Jest teraz dostępny na Github.
https://github.com/franciscojunior/Npgsql2

The better site for info na: http://npgsql.projects.postgresql.org/

Przeczytaj dokumentację! http://npgsql.projects.postgresql.org/docs/manual/UserManual.html

 11
Author: Stradas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-02 17:01:39

Istnieje dostawca Linq dla PostgreSQL w https://www.nuget.org/packages/linq2db.PostgreSQL/.

 11
Author: David Schmitt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-28 14:41:44

Stworzyliśmy kilka aplikacji wykorzystujących visual studio 2005 z devart ado.net Data provider for PostgreSql (http://www.devart.com/pgsqlnet/).

Jedną z zalet tego dostawcy jest to, że zapewnia pełną obsługę Visual Studio. Najnowsze wersje zawierają wszystkie nowe funkcje frameworka, takie jak linq.

 3
Author: Simon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-09 12:12:05

Obecnie większość języków / platform (Java,. NET, PHP, Perl itp.) może pracować z niemal każdym DBMS (SQL Server, Firebird, MySQL, Oracle, PostgresSQL itp.) więc nie martwiłbym się ani przez sekundę. Jasne, że mogą być usterki i małe problemy, ale nie showstopper.

Jak zasugerował jalcom, powinieneś programować na podstawie zestawu interfejsów lub przynajmniej zestawu klas bazowych (DbConnection, DbCommand itd.), aby mieć łatwą do dostosowania aplikację.

 2
Author: Andrei Rînea,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-06 00:04:37

Nie powinieneś mieć zbyt wielu problemów. Jak już wspomnieli inni, dostępnych jest wielu dostawców danych. Net PostgreSQL. Jedną z rzeczy, na które warto zwrócić uwagę, jest to, że funkcje takie jak Linq prawdopodobnie nie będą mogły być używane.

 2
Author: Kibbee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-06 00:23:10

Nie pozwól, aby brak wsparcia Linq Cię powstrzymał. Wzorzec, którego używam, to zawsze zwracanie moich danych na listy, a następnie LINQ. Zacząłem to robić religijnie, kiedy odkryłem, że to samo (co prawda niejasne) wyrażenie Linq w MySQL nie przywróciło tych samych danych, co w SQL Server.

 2
Author: user542319,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-26 21:02:01

Po prostu przejdź do Narzędzia-->NuGet Package Manager-- > Manager NuGet Package Manager

Wyszukaj NpgSql , a następnie wybierz swój projekt i kliknij Zainstaluj

Przykładowy Kod

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

Nie używaj wielkich liter w postgreSql, ponieważ rozróżnia wielkość liter.

 1
Author: Riyaz Ahamed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-30 07:29:13