[C#][ODBC] Daten aus einer Tabelle in einem DataGridView anzeigen

// dgvGrid == DataGridView auf dem Formular
private void btnOpen_Click(object sender, EventArgs e)
{
    OdbcConnection conn = null;
    OdbcDataReader reader = null;

    try
    {
        // Verbindung herstellen
        conn = new OdbcConnection(@"dsn=MyDSN;UID=user;PWD=password;");
        conn.Open();

        // SQL-Kommando abschicken
        OdbcCommand cmd = new OdbcCommand("SELECT Names FROM MyTable", conn);
        // Daten einlesen
        reader = cmd.ExecuteReader();

        // Bindingsource erstellen
        BindingSource bSource = new BindingSource();
        // Reader an Source binden
        bSource.DataSource = reader;

        // Source an DataGridView übergeben
        dgvData.DataSource = bSource;
    }
    catch (Exception)
    {
    }
    finally
    {
        // aufräumen
        if (reader != null) reader.Close();
        if (conn != null) conn.Close();
    }
}
  • Weiterführender Link: Link

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