C# - Einführung in die Programmiersprache Arbeiten mit ADO · 2012-08-02 · ADO.NET (ActiveX Data...

22
Leibniz Universität IT Services | Anja Aue C# - Einführung in die Programmiersprache Arbeiten mit ADO.NET

Transcript of C# - Einführung in die Programmiersprache Arbeiten mit ADO · 2012-08-02 · ADO.NET (ActiveX Data...

Page 1: C# - Einführung in die Programmiersprache Arbeiten mit ADO · 2012-08-02 · ADO.NET (ActiveX Data Objects.NET) ... ist eine Sammlung von Bibliotheken, um mit verschiedenen Datenquellen

Leibniz Universität IT Services | Anja Aue

C# - Einführung in die Programmiersprache

Arbeiten mit ADO.NET

Page 2: C# - Einführung in die Programmiersprache Arbeiten mit ADO · 2012-08-02 · ADO.NET (ActiveX Data Objects.NET) ... ist eine Sammlung von Bibliotheken, um mit verschiedenen Datenquellen

c# - Einführung | 29.06.12 Seite 2

Experteneinstellungen in Visual Studio Express

Extras – Einstellungen – Experteneinstellungen. Es werden zusätzlich die Menüs Erstellen und Umgestalten

eingeblendet.

Page 3: C# - Einführung in die Programmiersprache Arbeiten mit ADO · 2012-08-02 · ADO.NET (ActiveX Data Objects.NET) ... ist eine Sammlung von Bibliotheken, um mit verschiedenen Datenquellen

c# - Einführung | 29.06.12 Seite 3

Einstellungen in den Optionen

Page 4: C# - Einführung in die Programmiersprache Arbeiten mit ADO · 2012-08-02 · ADO.NET (ActiveX Data Objects.NET) ... ist eine Sammlung von Bibliotheken, um mit verschiedenen Datenquellen

c# - Einführung | 29.06.12 Seite 4

Verzeichnis „Projekte und Projektmappe“

Der Standardspeicherort für Projekte und Projektmappen kann eingestellt.

Das Kontrollkästchen Erweiterte Buildkonfiguration anzeigen sollte aktiv sein. Nach Aktivierung dieser Option kann in den Eigenschaften die Konfiguration sowie die Plattform für, welches das Programm optimiert werden soll, ausgewählt werden.

Page 5: C# - Einführung in die Programmiersprache Arbeiten mit ADO · 2012-08-02 · ADO.NET (ActiveX Data Objects.NET) ... ist eine Sammlung von Bibliotheken, um mit verschiedenen Datenquellen

c# - Einführung | 29.06.12 Seite 5

Konfigurations-Manager

Erstellen – Konfigurations-Manager...

Page 6: C# - Einführung in die Programmiersprache Arbeiten mit ADO · 2012-08-02 · ADO.NET (ActiveX Data Objects.NET) ... ist eine Sammlung von Bibliotheken, um mit verschiedenen Datenquellen

c# - Einführung | 29.06.12 Seite 6

Einstellungen für die Nutzung von Datenbanken

… auf einer 64-Bit-Plattform.

Im Kombinationsfeld Aktive Projektmappenplattform wird der Eintrag Neu ausgewählt.

Im dem dazugehörigen Dialogfenster wird in dem ersten Kombinationsfeld x64 ausgewählt.

Page 7: C# - Einführung in die Programmiersprache Arbeiten mit ADO · 2012-08-02 · ADO.NET (ActiveX Data Objects.NET) ... ist eine Sammlung von Bibliotheken, um mit verschiedenen Datenquellen

c# - Einführung | 29.06.12 Seite 7

ADO.NET (ActiveX Data Objects.NET) ...

ist eine Sammlung von Bibliotheken, um mit verschiedenen Datenquellen zu kommunizieren.

nutzt meist als Datenquelle eine Datenbank. ist ein Element aus dem .NET Framework.

Page 8: C# - Einführung in die Programmiersprache Arbeiten mit ADO · 2012-08-02 · ADO.NET (ActiveX Data Objects.NET) ... ist eine Sammlung von Bibliotheken, um mit verschiedenen Datenquellen

c# - Einführung | 29.06.12 Seite 8

… im Web

http://msdn.microsoft.com/de-de/library/e80y5yhx.aspx.

http://msdn.microsoft.com/de-de/library/cc952530. http://www.csharp-station.com/Tutorial/AdoDotNet/lesson01 http://csharp.net-informations.com/ado.net/csharp-ado.net-

tutorial.htm

Page 9: C# - Einführung in die Programmiersprache Arbeiten mit ADO · 2012-08-02 · ADO.NET (ActiveX Data Objects.NET) ... ist eine Sammlung von Bibliotheken, um mit verschiedenen Datenquellen

c# - Einführung | 29.06.12 Seite 9

Benötigte Bibliotheken

using System.Data.OleDb;

Die Bibliothek wird benötigt, um Objekte wie eine Excel-Datei etc. mit einem C# zu verbinden.

O(bject)l(ink and)e(mbedding). Objekte aus der Windows-Welt können mit anderen Objekten verlinkt oder in diese eingebettet werden.

Page 10: C# - Einführung in die Programmiersprache Arbeiten mit ADO · 2012-08-02 · ADO.NET (ActiveX Data Objects.NET) ... ist eine Sammlung von Bibliotheken, um mit verschiedenen Datenquellen

c# - Einführung | 29.06.12 Seite 10

Verbindungsstring

OleDbConnectionStringBuilder b = new OleDbConnectionStringBuilder();

b.Provider = "Microsoft.ACE.OLEDB.12.0";

b.DataSource = @"C:\Users\Teilnehmer\Desktop\dozent_CSharp\ beispiel\code09_Notizen_Datenbank\

datenbank\KundeNotiz.accdb";

Mit Hilfe der Klasse OleDbConnectionStringBuilder wird ein Verbindungsstring für eine OleDb-Verbindung generiert.

Der Parameter .Provider legt die Art der Datenquelle fest. Dem Parameter .DataSource wird der Speicherort und der

Name der Datenquelle übergeben. Für die Pfadangabe wird ein Verbatim-String genutzt.

Page 11: C# - Einführung in die Programmiersprache Arbeiten mit ADO · 2012-08-02 · ADO.NET (ActiveX Data Objects.NET) ... ist eine Sammlung von Bibliotheken, um mit verschiedenen Datenquellen

c# - Einführung | 29.06.12 Seite 11

Möglichkeiten für Provider

Provider Prefix NutzungODBC odbc Ältere Datenbanken

OleDb OleDb Access, Excel etc.

Microsoft.ACE.OLEDB.12.0 Access ab Version 2007

Microsoft.Jet.OLEDB.4.0 Access 2003 und älter

Oracle Oracle Oracle Datenbanken

SQL Sql SQL-Server

Page 12: C# - Einführung in die Programmiersprache Arbeiten mit ADO · 2012-08-02 · ADO.NET (ActiveX Data Objects.NET) ... ist eine Sammlung von Bibliotheken, um mit verschiedenen Datenquellen

c# - Einführung | 29.06.12 Seite 12

Verbindung erstellen

OleDbConnection dbConnect = null;

dbConnect = new OleDbConnection(b.ToString());

Die Klasse OleDbConnection kann genutzt werden, um eine OleDb-Verbindung zu generieren.

Das Objekt bekommt als Startwert null übergeben. Es ist mit keiner Datenquelle verbunden.

Anschließend wird mit Hilfe des erzeugten Verbindungsstrings eine Verbindung zu einer bestimmten Datenquelle erstellt.

Page 13: C# - Einführung in die Programmiersprache Arbeiten mit ADO · 2012-08-02 · ADO.NET (ActiveX Data Objects.NET) ... ist eine Sammlung von Bibliotheken, um mit verschiedenen Datenquellen

c# - Einführung | 29.06.12 Seite 13

Verbindung öffnen und schließen

dbConnect.Open();

dbConnect.Close();

Die Methode .Open() öffnet die Verbindung. Aktionen, die auf einer nicht geöffneten Verbindung ausgeführt werden, erzeugen einen Fehler.

Die Methode .Close() schließt die Verbindung.

Mit Hilfe der Eigenschaft .State kann der Status der Verbindung abgefragt werden. Die Enumeration ConnectionState bietet die verschiedenen Statusmöglichkeiten an.

Page 14: C# - Einführung in die Programmiersprache Arbeiten mit ADO · 2012-08-02 · ADO.NET (ActiveX Data Objects.NET) ... ist eine Sammlung von Bibliotheken, um mit verschiedenen Datenquellen

c# - Einführung | 29.06.12 Seite 14

Arbeitsablauf

Verbindung zu einer Datenquelle erstellen und öffnen.

Senden von SQL-Anweisungen an die Datenquelle. Verbindung zu einer Datenquelle schließen.

Page 15: C# - Einführung in die Programmiersprache Arbeiten mit ADO · 2012-08-02 · ADO.NET (ActiveX Data Objects.NET) ... ist eine Sammlung von Bibliotheken, um mit verschiedenen Datenquellen

c# - Einführung | 29.06.12 Seite 15

OleDbCommand ...

string strSQL = "SELECT * FROM tblMitarbeiter";

oleDbCommand = new OleDbCommand(strSQL, dbConnect);

nutzt SQL-Anweisungen, die in der Datenquelle ausgeführt werden.

ermöglicht ein Lesen oder Schreiben von Daten mit Hilfe einer geöffneten Verbindung.

Page 16: C# - Einführung in die Programmiersprache Arbeiten mit ADO · 2012-08-02 · ADO.NET (ActiveX Data Objects.NET) ... ist eine Sammlung von Bibliotheken, um mit verschiedenen Datenquellen

c# - Einführung | 29.06.12 Seite 16

Auswahlabfragen

string strSQL = "SELECT * FROM tblMitarbeiter";

string strSQL = "SELECT Anrede, Vorname FROM tblKunde";

Auswahlabfragen beginnen mit dem Schlüsselwort SELECT. Dem Schlüsselwort folgt ein Sternchen. Es werden alle Spalten

der Tabelle ausgewählt.

Dem Schlüsselwort folgt eine Liste der gewünschten Spaltennamen. Die Spaltennamen werden durch ein Kommata getrennt.

Dem Schlüsselwort FROM folgt der Namen einer Tabelle.

Page 17: C# - Einführung in die Programmiersprache Arbeiten mit ADO · 2012-08-02 · ADO.NET (ActiveX Data Objects.NET) ... ist eine Sammlung von Bibliotheken, um mit verschiedenen Datenquellen

c# - Einführung | 29.06.12 Seite 17

DataReader

dataReader = oleDbCommand.ExecuteReader();

dataReader.Close();

Die Methode .ExcecuteReader() führt Anweisungen aus die Tabellenspalten zurückliefern.

Page 18: C# - Einführung in die Programmiersprache Arbeiten mit ADO · 2012-08-02 · ADO.NET (ActiveX Data Objects.NET) ... ist eine Sammlung von Bibliotheken, um mit verschiedenen Datenquellen

c# - Einführung | 29.06.12 Seite 18

Daten lesen

while (dataReader.Read())

{

mitarbeiterName = dataReader[2].ToString()

mitarbeiter.Add(dataReader[1].ToString(), mitarbeiterName);

}

Mit Hilfe der Methode .Read() werden Daten aus einer Tabelle zeilenweise gelesen.

Die einzelnen „Spalten“ werden durch den Index angesprochen.

Page 19: C# - Einführung in die Programmiersprache Arbeiten mit ADO · 2012-08-02 · ADO.NET (ActiveX Data Objects.NET) ... ist eine Sammlung von Bibliotheken, um mit verschiedenen Datenquellen

c# - Einführung | 29.06.12 Seite 19

Einfügeabfragen

strQuery = "INSERT INTO tblNotiz

(MitarbeiterNr, Kunde, ErstelltAm)";

strQuery = strQuery + " VALUES (?, ?, ?)";

Einfügeabfragen beginnen mit dem Schlüsselwort INSERT INTO.

Dem Schlüsselwort folgt der Name der Tabelle, in der die Zeile eingefügt werden soll.

Dem Tabellennamen folgen in runden Klammern die Spaltennamen, in denen ein Wert eingefügt werden soll. Die Spaltennamen werden durch Kommata getrennt.

Das Schlüsselwort VALUES bezeichnet eine Liste in runden Klammern, die die zu übergebenden Werte definiert.

Page 20: C# - Einführung in die Programmiersprache Arbeiten mit ADO · 2012-08-02 · ADO.NET (ActiveX Data Objects.NET) ... ist eine Sammlung von Bibliotheken, um mit verschiedenen Datenquellen

c# - Einführung | 29.06.12 Seite 20

Parameter übergeben

strQuery = "INSERT INTO tblNotiz

(MitarbeiterNr, Kunde, ErstelltAm)";

strQuery = strQuery + " VALUES (?, ?, ?)";

oleDbCommand = new OleDbCommand(strQuery, dbConnect);

oleDbCommand.Parameters.Add("MitarbeiterNr",

OleDbType.VarWChar).Value = mitarbeiterNr;

oleDbCommand.Parameters.Add("Kunde",

OleDbType.VarWChar).Value = kundeNr;

oleDbCommand.Parameters.Add("ErstelltAm",

OleDbType.DBDate).Value = erstelltAm;

Page 21: C# - Einführung in die Programmiersprache Arbeiten mit ADO · 2012-08-02 · ADO.NET (ActiveX Data Objects.NET) ... ist eine Sammlung von Bibliotheken, um mit verschiedenen Datenquellen

c# - Einführung | 29.06.12 Seite 21

Hinweise

VALUES (?, ?, ?)definiert eine Liste von Parametern in einer INSERT-INTO-Anweisung. Die zu übergebenen Parameter werden durch die Fragezeichen gekennzeichnet. Die Anzahl der Fragezeichen entspricht der Anzahl der angegebenen Spaltennamen.

Anschließend wird die SQL-Anweisung an die Datenquelle übergeben.

.Parameters ist eine Auflistung von Parametern für die SQL-Anweisung. Mit Hilfe der Methode .Add() werden die Parameter an die auszuführende Anweisung übergeben. Der Methode werden der Spaltennamen sowie der Datentyp übergeben. Der Eigenschaft .Value der angegebenen Spalte wird der Wert übergeben.

Page 22: C# - Einführung in die Programmiersprache Arbeiten mit ADO · 2012-08-02 · ADO.NET (ActiveX Data Objects.NET) ... ist eine Sammlung von Bibliotheken, um mit verschiedenen Datenquellen

c# - Einführung | 29.06.12 Seite 22

DataReader

oleDbCommand.ExecuteNonQuery();

dataReader.Close();

Die Methode .ExcecuteNonReader() führt Anweisungen wie INSERT INTO, UPDATE und DELETE aus.

Die Methode gibt keine Zeilen zurück. Es wird nur die Anzahl der geänderten oder neu hinzugefügten Daten zurückgegeben.