Usare C# .NET con PostgreSQL database

Ho appena iniziato a lavorare ad un progetto basato su piattaforma .NET e linguaggio di programmazione C#, e come sorgente dati dobbiamo utilizzare un database PostgreSQL, ho sentito dire che la libreria ODBC.NET consente facilmente d'integrare e far dialogare questi due componenti, è vero?

Avete qualche esperienza in merito su C# e PostgreSQL per farli lavorare assieme? E se SI potete darmi qualche utile suggerimento per agevolare questo interfacciamento.

In Corso 4
PostgreSQL 01-06-2018 4 Risposte 1562 Visite 0
Vito Natello

Vito Natello

Autore di questa domanda

Risposte ( 4 approvate )

  1. Emanuele Segatti
    +2
    01-06-2018 11:22:39
    Rispondi

    Io lavoro con C# e PostgreSQL ed utilizzo per farli comunicare il componente Ngpsql2, esso lavora bene e velocemente, te lo consiglio vivamente.

    Puoi scaricare Ngpsql2 da qui

    Infine se vuoi che la tua applicazione lavori con qualsiasi database puoi usare DbProviderFactory class ed eseguire le query con le interfacce IDbConnection, IDbCommand, IDataReader e/o IDbTransaction.

  2. Alberto Orfiesi
    0
    01-06-2018 11:53:56
    Rispondi

    Utilizza il tool NpgSql (NuGet Package Manager SQL), una volta scaricato ed installato potrai scrivere un qualcosa del genere in C# per connetterti PostgreSQL, ecco un esempio di codice:

    public void Demo()
            {
                NpgsqlConnection connection = new NpgsqlConnection();
                connection.ConnectionString = 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();
                }            
            }

    Attenzione all'uso del maiuscolo poiché PostgreSQL è case-sensitive.

  3. Andrea Rimpezzi
    0
    01-06-2018 11:42:52
    Rispondi

    Oggi quasi tutti i linguaggi Java, C++, C#, PHP, Perl ed altri riescono a dialogare con la maggior parte dei database MySql, Sql Server, Oracle, Firebird e lo stesso PostgreSQL, tutt'al più potrebbero verificarsi delle piccole incongruenze di comunicazione, ma difficilmente si hanno dei crash o stop gravi che interrompono il funzionamento dell'applicativo.

    Come suggerito da Emanuele, con C# (in ambiente .NET) puoi riferirti alle classi DbConnection, DbCommand e così via per comunicare con PostgreSQL.

  4. Caterina Stoletti
    0
    01-06-2018 11:30:11
    Rispondi

    Puoi provare ad usare Linq to PostgreSQL, essa è una tecnologia che ti consente a run-time di gestire i dati relazionali come oggetti.

Rispondi

Per poter rispondere a questa domanda, devi essere registrato e loggato sul sito, dopodichè compila il box sottostante cercando di essere il più chiaro ed esauriente possibile, la tua risposta potrebbe essere la soluzione che l'utente cerca ed essere contrassegnata come migliore, consentendoti così di ottenere punti ed autorevolezza.

 Domanda Precedente

 Elenco Domande 

Domanda Successiva