Connessione ODBC in C#

Mattepuffo's logo
Connessione ODBC in C#

Connessione ODBC in C#

Su Windows uso molto ODBC per connettermi a database non Microsoft (Oracle, Informix, ecc).

Quindi, volendo connettere una mia applicazione in C# al db Oracle, posso direttamente usare la connessione ODBC installata sul pc.

Oggi vediamo proprio un esempio di codice per eseguire questa operazione.

Non sono necessare librerie esterne:

using System;
using System.Data.Odbc;

namespace TestODBC
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                OdbcConnection conn = new OdbcConnection("DSN=NOME_ODBC;UID=USERNAME;PWD=PASSWORD");
                conn.Open();
                OdbcCommand cmd = conn.CreateCommand();
                cmd.CommandText = "SELECT * FROM table";
                OdbcDataReader reader = cmd.ExecuteReader();
                int count = reader.FieldCount;
                while (reader.Read())
                {
                    // TROVIAMO L'INDICE DELLA COLONNA DEL CAMPO CHE VOGLIAMO VISUALIZZARE
                    int colRagSoc = reader.GetOrdinal("RAGSOC");
                    // USIAMO L'INDICE DI COLONNA SOPRA PER PRENDERE IL VALORE DEL CAMPO CORRISPONDENTE
                    string ragSoc = reader.GetString(colRagSoc);
                    Console.WriteLine(ragSoc);
                }
                reader.Close();
                cmd.Dispose();
                conn.Close();
            }
            catch(OdbcException ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
    }
}

Ovviamente dovete aver già configurato la connessione ODBC sul pc; il nome della connessione, con username e password, li passiamo come argomento a OdbcConnection.

Sotto apriamo la connessione, e con OdbcDataReader iteriamo sui risultati.

Visto che i metodi GetXXX del reader accettano solo l'indice di colonna, prendiamo quelli che ci interessano usando GetOrdinal (che accetta il nome della colonna).

Poi chiudiamo tutto.

Enjoy!


Condividi

2 Commenti

  • fermat

    ciao! a me in questo modo già le stampa tutte, dipende dalla query che fai forse!

    06/03/2017
  • Mattia

    Grazie mille per la condivisione, è proprio ciò che stavo cercando per connettermi al mio db. In questo modo mi stampa solamente la prima ragione sociale ma se volessi stamparle tutte?

    22/02/2017

Commentami!