[ODBC] Zugriff per System- oder Benutzer-DSN

Im Beispiel wird mit ODBC über ein Benutzer-DSN [Systemsteuerung->Verwaltung->Datenquellen (ODBC)] auf eine PostgreSQL-Datenbank zugegriffen. Das zugehörige SQL-Statement ruft alle in der Datenbank erzeugten Tabellen ab.

using System.Data;
using System.Data.Odbc;

// hier System- oder Benutzer-DSN (Alias) eintragen
string sDSN = @"mein DSN";
// Username
string sUID = @"user";
// Passwort
string sPW = @"password";

// alle Tabellen einer PostgreSQL-Datenbank abrufen
string sSql = @"SELECT table_name FROM information_schema.tables";

OdbcConnection conn = null;
OdbcDataReader reader = null;

try
{
    // Verbindung herstellen
    conn = new OdbcConnection(@"dsn=" + sDSN + ";UID=" + sUID + ";PWD=" + sPW + ";");
    conn.Open();

    // SQL-Kommando abschicken
    OdbcCommand cmd = new OdbcCommand(sSql, conn);
    reader = cmd.ExecuteReader();

    // Daten auslesen und anzeigen
    while (reader.Read())
    {
        Console.WriteLine(reader["table_name"]);
    }
}
catch (Exception ex)
{
    Console.WriteLine("Error: " + ex);
}
finally
{
    // aufräumen
    if (reader != null) reader.Close();
    if (conn != null) conn.Close();
}