01.12.2011 - Software and Systems Engineering

Werbung
Technische Universität München
Datenbanken
Proseminar Objektorientiertes Programmieren mit .NET und C#
Tien Vu
Institut für Informatik
Software & Systems Engineering
Technische Universität München
Gliederung
1. ADO.NET
1. Daten Anbieter
1.
2.
3.
4.
SqlConnection
SqlCommand
DataReader
DataAdapter
2. Daten Manipulierer - DataSet
3. DataReader oder DataSet
2. Entity Framework
1. Model-first-Ansatz
2. Database-first-Ansatz
3. LinQ to Entity
01.12.2011
Tien Vu - Datenbanken
2
Technische Universität München
1. ADO .NET
Alle ADO.NET-Klassen, die für den Zugriff auf den SQL Server notwendig sind, um auf Daten zuzugreifen
befinden sich im Namespace System.Data.SqlClient
01.12.2011
Tien Vu - Datenbanken
3
Technische Universität München
1.1. Data Provider
Object
Aufgabe
Connection
Die Verbindung zu einem Datenbanksystem herstellen
Command
Befehlen wie Insert, Update, Delete… ausführen
DataReader
Liest einen read-only Reihe von Daten aus einer
Datenquelle
DataAdapter
DataSet mit den Daten von DataReader ausfüllen und
Aktuallisierung mit Datenbank auflösen.
01.12.2011
Tien Vu - Datenbanken
4
Technische Universität München
1.1.1. SqlConnection

ConnectionString :

ConnectionStringBuilder :

Der ConnectionStringBuilder-Objekt bietet die Möglichkeit, die
Verbindungsinformationen aus einer Konfigurationsdatei herauszunehmen
oder die Logindaten per Eingabe zu bekommen
01.12.2011
Tien Vu - Datenbanken
5
Technische Universität München
1.1.1. SqlConnection

Instanz erzeugen und Verbindung mittels Open() öffnen

Mit using keyword müssen wir nicht mehr um das Schließen des
Connection kümmern
01.12.2011
Tien Vu - Datenbanken
6
Technische Universität München
1.1.2. Die SqlCommand- Klasse

Die Klasse System.Data.SqlClient.SqlCommand wird zum Ausführen von
Abfrage oder Aufuf von gespeicherten Prozeduren benutzt.

Eine gültige, geöffnete Verbindung ( ein SqlConnection-Objekt) und den
Text der Abfrage werden benötigt.

Weil ein SqlCommand-Objekt immer eine Verbindung braucht, hat die
SqlConnection-Klasse die Methode CreateCommand(), die alles
Notwendige erledigt und ein einsatzbereites Objekt zurückliefert.
01.12.2011
Tien Vu - Datenbanken
7
Technische Universität München
1.1.2. SqlCommand - Klasse
01.12.2011
Tien Vu - Datenbanken
8
Technische Universität München
1.1.3. DataReader - Klasse


Daten, die wir von DataReader bekommen können nicht geändert, sondern
nur gelesen werden.
Die DataReader-Klasse kann nicht direct mit dem new-Schüsselwort
erzeugt werden, sondern wird von einem Command-Object als
Rückgabewert der ExecuteReader()-Methode geliefert
01.12.2011
Tien Vu - Datenbanken
9
Technische Universität München
1.1.4. DataAdapter

dient dem automatischen Befüllen eines DataSet und dem späteren
Schreiben des vorgenommenen Änderungen in die Datenbank.

Will man die Daten in DataSet neu laden oder aktualisieren, nimmt man
die Fill() Methode

Soll die Daten, die bereits im DataSet geändert wurde, zurück in
Datenbank schreiben, wird die Update() Methode benutzt
01.12.2011
Tien Vu - Datenbanken
10
Technische Universität München
1.2. DataSet



ist eine Offline-Datenmenge
die Daten im DataSet kann beliebig zugegriffen werden
kann mit mehreren und unterschiedlichen Datenquellen verwendet werden,
mit XML-Daten oder Daten vor Ort, um die Anwendung zu verwalten.

Empfehlen :
http://msdn.microsoft.com/en-en/library/zb0sdh0b.aspx
01.12.2011
Tien Vu - Datenbanken
11
Technische Universität München
1.2. DataSet
 Nachdem wir DataSet mit DataAdapter gefüllt haben, können wir gleich die
Daten benutzen
01.12.2011
Tien Vu - Datenbanken
12
Technische Universität München
1.3. DataReader oder DataSet
DataSet
DataReader
Lese-und Schreibezugriff
Nur Lesezugriff
Unterstützt mehrere Tabellen von
verschiedene Datenbank
Unterstützt lediglich eine Tabelle, die auf
einer einzigen SQL-Abfrage basiert
Funktioniert ohne Verbindung
Unterstützt Vorwärts- und
Rückwärtsdatenscannen
Nur Vorwärtsdatenscannen
Langsamer Zugriff
Schnellerer Zugriff auf Daten
Unterstützt bei Visual .Net Tools
Muss manuell kodieren
01.12.2011
Tien Vu - Datenbanken
13
Technische Universität München
2. Entity Framework
Definition :

Entity Framework ist ein O/R-Mapper, der seit .NET Framework 3.5
Service Pack 1 von Microsoft geboten werden.

O/R-Mapper steht für Objektrelationaler Mapper, er stellt eine Schicht
zwischen Anwendung und Datenbank dar.
01.12.2011
Tien Vu - Datenbanken
14
Technische Universität München
2. Entity Framework


Warum O/R-Mapping bzw. Entity Framework überhaupt?
Der Hauptgrund ist ganz einfach : schnellere Entwicklung mit weniger
Fehler potenzial :
– Das System erzeugt die Objekten automatisch, verfolgt die Änderung
von die Objekten und führt die Aktualisierung automatisch aus.
– Es ist möglich, auf Spalten einer Tabellenzeile als Eigenschaft einer
Klasse zuzugreifen. Die gesamte Tabelle wird als Auflistung von
Instanzen dieser Klasse dargestellt.
– Die Datenbank im Hintergrund ist stark abstrahiert, deswegen ist es
denkbar, Anwendungen zu schreiben, die völlig unabhängig von der
verwendeten Datenbanktechnologie sind.
01.12.2011
Tien Vu - Datenbanken
15
Technische Universität München
2. Entity Framework
01.12.2011
Tien Vu - Datenbanken
16
Technische Universität München
2. Entity Framework
Neu Entity Data Model einfügen
01.12.2011
Tien Vu - Datenbanken
17
Technische Universität München
2. Entity Framework


„Generate from Database“ – Database-first-Ansatz
„Empty Model“ – Model-first-Ansatz
01.12.2011
Tien Vu - Datenbanken
18
Technische Universität München
2.1. Model-first-Ansatz
01.12.2011
Tien Vu - Datenbanken
19
Technische Universität München
2.1. Model-first-Ansatz
Datenverbindung
Connection String
01.12.2011
Tien Vu - Datenbanken
20
Technische Universität München
2.1. Model-first-Ansatz
01.12.2011
Tien Vu - Datenbanken
21
Technische Universität München
2.2. Database-first-Ansatz
01.12.2011
Tien Vu - Datenbanken
22
Technische Universität München
2.2. Database-first-Ansatz
01.12.2011
Tien Vu - Datenbanken
23
Technische Universität München
2.3. LinQ to Entity

Beispiel :
01.12.2011
Tien Vu - Datenbanken
24
Technische Universität München
End

Vielen Dank für eure Aufmerksamkeit

Frage?
01.12.2011
Tien Vu - Datenbanken
25
Herunterladen