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!
c# odbc odbcconnection odbcdatareader windows microsoft
2 Commenti
ciao! a me in questo modo già le stampa tutte, dipende dalla query che fai forse!
06/03/2017Grazie 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