[C#][OleDB] Daten aus MSAccess in einem DataGridView darstellen

string sOleConnStr = string.Empty;
string sMDBFile = @"c:\Test.mdb";
string sUser = "user";
string sPassword = "password";
string sSQL = "SELECT * FROM table";

if (sMDBFile.Contains(".mdb"))
{
    sOleConnStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sMDBFile + ";User ID=" + sUser + ";Jet OLEDB:Database Password=" + sPassword;
}
else
    if (sMDBFile.Contains(".accdb"))
    {
        sOleConnStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + sMDBFile + ";User ID=" + sUser + ";Jet OLEDB:Database Password=" + sPassword;
    }

if (string.IsNullOrEmpty(sOleConnStr))
{
    MessageBox.Show("Sie haben eine nicht unterstützte MS Access Datenbankdatei ausgewählt.", AssemblyInfo.AssemblyProduct, MessageBoxButtons.OK, MessageBoxIcon.Warning);
    return;
}

OleDbConnection olecon = null;
OleDbDataReader olereader = null;

try
{
    olecon = new OleDbConnection(sOleConnStr);
    olecon.Open();

    OleDbCommand cmd = new OleDbCommand(sSQL, olecon);
    olereader = cmd.ExecuteReader();

    BindingSource bSource = new BindingSource();
    bSource.DataSource = olereader;

    // Datagridview auf einem Formular zum anzeigen der Daten
    dgvData.DataSource = bSource;
}
catch (Exception eole)
{
    MessageBox.Show(eole.Message, AssemblyInfo.AssemblyProduct, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
    // aufräumen
    if (olereader != null) olereader.Close();
    if (olecon != null) olecon.Close();
}

[OleDB] Tabellen einer MSAccess Datenbank auslesen

string sOleConnStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\Test.accdb;User ID=;Jet OLEDB:Database Password=";

OleDbConnection olecon = new OleDbConnection(sOleConnStr);
olecon.Open();

DataTable dbSchemaTable = olecon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });

foreach (DataRow row in dbSchemaTable.Rows)
{
    Console.WriteLine(row["TABLE_NAME"].ToString());
}

[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 auf SQL Server

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

// Username
string sUID = @"user";
// Passwort
string sPW = @"password";
// Server
string sServer = @"127.0.0.1";
// Database
string sDB = @"DatabaseName";
// SQL-String
string sSql = @"SELECT Names FROM MyTable";

OdbcConnection conn = null;
OdbcDataReader reader = null;

try
{
    // Verbindung herstellen
    conn = new OdbcConnection("Driver={SQL Server};Server=" + sServer + ";UID=" + sUID + ";PWD=" + sPW + ";Database=" + sDB + ";");
    conn.Open();

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

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

[ODBC] Zugriff auf Oracle

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

// Username
string sUID = @"user";
// Passwort
string sPW = @"password";
// Server
string sServer = @"127.0.0.1";
// SQL-String
string sSql = @"SELECT Names FROM MyTable";

OdbcConnection conn = null;
OdbcDataReader reader = null;

try
{
    // Verbindung herstellen
    conn = new OdbcConnection("Driver={Microsoft ODBC for Oracle};Server=" + sServer + ";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["Names"]);
    }
}
catch (Exception ex)
{
    Console.WriteLine("Error: " + ex);
}
finally
{
    // aufräumen
    if (reader != null) reader.Close();
    if (conn != null) conn.Close();
}

[ODBC] Zugriff auf JET (Access)

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

// Username
string sUID = @"user";
// Passwort
string sPW = @"password";
// Access-Datei
string sMDB = @"C:\Temp\Northwind.mdb";
// SQL-String
string sSql = @"SELECT Names FROM MyTable";

OdbcConnection conn = null;
OdbcDataReader reader = null;

try
{
    // Verbindung herstellen
    conn = new OdbcConnection("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + sMDB + ";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["Names"]);
    }
}
catch (Exception ex)
{
    Console.WriteLine("Error: " + ex);
}
finally
{
    // aufräumen
    if (reader != null) reader.Close();
    if (conn != null) conn.Close();
}

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

[ADO.Net] Excel 2003 – 2007 Daten lesen und schreiben

Vorarbeit

Codebeispiel

using System;
using System.Data.OleDb;

OleDbConnection con = null;

try
{
    // Excel-Datei, die geöffnet werden soll
    string sExcelFile = "c:\\mytable.xls";
    // Connection-String für Excel 2003
    string sConnString2003 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\""+sExcelFile+"\"; Extended Properties=\"Excel 8.0;HDR=YES;\";";
    // Connection-String für Excel 2007
    string sConnString2007 = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=\""+sExcelFile+"\"; Extended Properties=\"Excel 12.0;HDR=YES;\";";
    // beispielsweise Verbindung zu Excel 2007 herstellen
    con = new OleDbConnection(sConnString2007);
    con.Open();

    // Daten lesen
    // über Named Range
    string sSQL = "SELECT * FROM tabellenname";
    // über Worksheet-Name, wobei die Worksheet den Namen "WorkSheet1" hat
    //sSQL = "SELECT * FROM [WorkSheet1$]";

    OleDbCommand cmd = new OleDbCommand(sSQL, con);
    OleDbDataReader reader = cmd.ExecuteReader();

    while (reader.Read())
    {
        Console.WriteLine("{0}: {1}", reader.GetString(0), reader.GetString(1) ...
    }

    // Daten schreiben
    sSQL = "INSERT INTO tabellenname VALUES('12345', 'Horst')";
    // über Worksheet-Name, wobei die Worksheet den Namen "WorkSheet1" hat
    //sSQL = "INSERT INTO tabellenname VALUES('12345', 'Horst')";
    cmd = new OleDbCommand(sSQL, con);
    cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}
finally
{
    con.Close();
    con.Dispose();
}

[MySQL] Zugriff über MySQL Connector/Net

Links

Voreinstellungen

  • Um über .NET auf MySQL zuzugreifen, muss man zunächst den MySQL Connector/Net installieren: Link
  • Im Projekt muss man als nächstes einen Verweis auf MySQL.Data hinzufügen (Reiter “.Net”)

Beispielcode

using MySql.Data;
using MySql.Data.MySqlClient;

...

try
{
    // Verbindung öffnen
    MySqlConnection con = new MySqlConnection(@"Server=127.0.0.1;Uid=root;Pwd=password;Database=mydatabase;Charset=latin1;");
    con.Open();

    // Insert
    MySqlCommand ins = new MySqlCommand("INSERT INTO tabelle (spalte) VALUES ('Wert')", con);
    int i = ins.ExecuteNonQuery();

    // Select
    MySqlDataAdapter adp = new MySqlDataAdapter(new MySqlCommand("SELECT * FROM tabelle", con));
    // Daten holen
    DataTable data = new DataTable();
    adp.Fill(data);
    // Daten auslesen
    for (int i = 0; i < data.Rows.Count; i++)
    {
         ...
    }

    // Verbindung schließen
    con.Close();
}
catch (MySqlException ex)
{
    MessageBox.Show(ex.Message);
}