[C#] Daten aus Oracle abfragen

Drucken
( 0 Votes ) 
Hauptkategorie: Programmieren Kategorie: C#
Erstellt am 24.01.2012 Zuletzt aktualisiert am 14.02.2012 Geschrieben von Jonny132
In der Programmierung arbeitet man oft mit großen Datenmengen. Um solchige Daten zu verwalten und Speichern verwendet man Datenbanksysteme. In diesem Tutorial zeige ich euch wie man Daten aus einem Oracle - Datanbanksystem ausliest und anzeigt.

Erstellt ein neues Forms Projekt und fügt der Form ein DataGridView mit der Eigenschaft Dock = Fill hinzu.

Um zu Oracle eine Verbindung aufbauen zu können, müssen Sie die Library Oracle.DataAcess referenzieren.

Wechseln Sie nun in die Codeansicht. Um den Code besser Lesbar zu halten, fügen Sie bitte folgende Using - Direktive ein.
 
using Oracle.DataAccess.Client;

Da wir zu Oracle eine Verbindung aufbauen wollen, benötigen wir ein ConnectionObject dieser wir einen sogenannten ConnectionString übergeben müssen. Um diesen ConnectionString zusammenzubauen erstellen wir eine Hilfsfunktion.
Hinweis: Die Hilfsfunktion funktioniert nur bei bestehender tnsnames.ora ansonsten bitte Tutorial [C#] Daten aus Oracle Abfragen ohne tnsnames.ora beachten.

Hilfsfunktion BuildConnectionString

public static string BuildConnectionString(string user,
                                           string pw, string source)
{
   string sec = (user == "" || user == "/") ? "true" : "false";
   return "USER ID=" + user + ";DATA SOURCE=" + source + 
     ";PASSWORD=" + pw + ";Pooling=false;PERSIST SECURITY INFO=" + sec + ";";
}

Dieser Hilfsfunktion können wir User, Passwort und die Datenbank übergeben. Wird als User ein Slash '/' übergeben, benützt die Funktion Windows-Authentifizierung.

Kommen wir nun zur eigentlichen Verbindungsherstellung und auslesen der Datenbank.
Fügen Sie folgenden Code in die Form Load Routine ein.

Form Load Ereignis

    private void Form1_Load(object sender, EventArgs e)
    {
      try
      {
        using (OracleCommand cmd = new OracleCommand("select * from 
                  dba_role_privs",
              new OracleConnection(BuildConnectionString("/", "",
                 "IhreDatenBankBezeichnung"))))
        {
          using (OracleDataAdapter adapter = new OracleDataAdapter(cmd))
          {
            DataTable dba_userTable = new DataTable();
            adapter.Fill(dba_userTable);
            dataGridView1.AutoGenerateColumns = true;
            dataGridView1.DataSource = dba_userTable;
          }
        }
      }
      catch (Exception ex)
      {
        MessageBox.Show(ex.Message);
      }
    }
 
Zuerst ersellen wir einen Try - Catch Block um etwaige Fehler abzufangen und in einer MessageBox auszugeben. Wir verwenden Using - Anweisungen um sicherzustellen, dass alle Ressourcen wieder Korrekt freigegeben werden.
Wir erstellen eine Verbindung zur Datenbank in dem wir ein OracleCommand Objekt erstellen dieser wir den Select - Befehl übergeben der die Daten zurückliefern soll die wir Anzeigen wollen. Zusätzlich verwenden wir unsere Hilfsfunktion um einen Connectionstring zu generieren. Danach erstellen wir einen DataAdapter. Dieser hilft uns die Daten einfach zu Managen. Wir erstellen einen DataTable dieser wir per adapter.Fill mit den selektierten Daten aus der Datenbank befüllen.
Zu Schluss wird dem dataGridView noch mitgeteilt, dass es die Spalten automatisch generieren soll und anschliessend wird die zuvor befüllte DataTable per DataBinding an das DataGridView gebunden.

Wenn Sie das Projekt nun ausführen, sollten Sie ca. eine Solchige Ausgabe erhalten:

    Veröffentlichen Sie ihre Kommentare ...