communityWir suchen ständig neue Tutorials und Artikel! Habt ihr selbst schonmal einen Artikel verfasst und seid bereit dieses Wissen mit der Community zu teilen? Oder würdet ihr gerne einmal über ein Thema schreiben das euch besonders auf dem Herzen liegt? Dann habt ihr nun die Gelegenheit eure Arbeit zu veröffentlichen und den Ruhm dafür zu ernten. Schreibt uns einfach eine Nachricht mit dem Betreff „Community Articles“ und helft mit das Angebot an guten Artikeln zu vergrößern. Als Autor werdet ihr für den internen Bereich freigeschaltet und könnt dort eurer literarischen Ader freien Lauf lassen.

Datenbankanwendungen mit Microsoft SQL Server Compact Drucken E-Mail
Benutzerbewertung: / 143
SchwachPerfekt 
Samstag, den 12. September 2009 um 22:47 Uhr
Beitragsseiten
Datenbankanwendungen mit Microsoft SQL Server Compact
Datenbankentwurf
LINQ to SQL
Benutzeroberfläche
Alle Seiten

Einführung

In diesem Tutorial werden Sie Elemente von Visual Studio kennenlernen, die Sie für die schnelle Entwicklung von Datenbankanwendungen benötigen. Als Datenbank wird das neue moderne Microsoft SQL Server Compact verwendet, ein kompaktes, relationales Datenbanksystem das sowohl für den Einsatz in tragbaren Geräten, als auch für den Desktopbereich konzipiert wurde. In dem Artikel wird auf die drei Hauptkomponenten DataSet, Datenprovider und die Klassen der Datenbindung aus ADO.NET eingegangen. Mit LINQ to SQL werden Sie Datenbankabfragen direkt in C# erstellen.

Microsoft SQL Server Compact

Bei Microsoft SQL Server Compact handelt sich um ein eingebettetes Datenbanksystem. Das System wird im Gegensatz zu einem eigenständigen SQL Server nicht als Standalone-Software installiert, sondern besteht im Wesentlichen aus einer Assembly, die in die Anwendung eingebaut wird. Durch die Entwicklung als Embedded lässt sich die Applikation direkt in entsprechende Anwendungen integrieren, so dass eine weitere Server-Software nicht benötigt wird. In den letzten Jahren sind diese Datenbankformen sehr bekannt geworden, nicht zuletzt durch das erfolgreiche SQLite. Heute wird SQLite unter anderem in Betriebssystemen für Mobiltelefone, wie Symbian OS oder Android als Datenbanksystem verwendet. Außerdem nutzt Version 3 des Mozilla Firefox Browsers komplett SQLite – beispielsweise für die Bookmarks – nachdem schon die Version 2 SQLite für programminterne Datenbanken benutzt hatte.

Mit Visual Studio 2005 erkannte Microsoft erstmals die große Nachfrage nach einer schlanken, in die Anwendung integrierbaren SQL-Datenbank und veröffentlichte die SQL Server Compact 2005 Edition. Dabei handelt es sich um ein .NET Pendant zu SQLite, entwickelt von Microsoft. SQL CE wird von Microsoft kostenlos angeboten und verfügt über eine native 64-Bit Unterstützung. Microsoft SQL Server Compact steht innerhalb der Entwicklung unter .NET zur Verfügung und hat einige Besonderheiten gegenüber anderen Datenbanken: Die Programmbibliothek ist nur wenige Megabyte (MB) groß. Die Datenbanken können verteilt auf mehrere Dateien, bei Bedarf auch in eine einzelne Datei, gespeichert werden, was den Austausch zwischen verschiedenen Systemen erheblich vereinfacht. Die Datenbanken können bei Bedarf mit 128-Bit verschlüsselt werden.

SQL CE teilt sich einen Großteil der API mit den übrigen Microsoft SQL Server Editionen. Es beinhaltet ADO.NET Provider für den Zugriff auf die ADO.NET Schnittstellen. Darüber hinaus besitzt die Programmbibliothek interne Synchronisierungsmechanismen und unterstützt LINQ. SQL CE läuft innerhalb des Anwendungsprozesses und teilt sich denselben Speicherbereich mit allen anderen SQL CE Instanzen.

Bezugsquelle

Seit der ersten Version von SQL CE hat Microsoft weitere Updates veröffentlicht. Die derzeit aktuelle Version ist Microsoft SQL Server Compact 3.5 SP1. Der Installer kann auf http://www.microsoft.com/sql/default.mspx bezogen werden. Laden Sie sich das entsprechende Paket herunter und installieren Sie SQL CE auf Ihrem Computer.

Der Installer installiert lediglich die notwendigen Programmbibliotheken unter dem angegebenen Verzeichnis und registriert diese in Visual Studio.

sql_install

Bei Bedarf lässt sich gleichzeitig auch die Dokumentation mitsamt Beispielen in einem separaten Paket auf der Seite von Microsoft herunterladen.

Visual Studio

Zum Schreiben von .NET-Anwendungen ist es nicht zwingend notwendig, das Visual Studio von Microsoft zu verwenden, bei größeren Anwendungen - und dazu gehören Datenbankanwendungen meistens - erhöht es allerdings die Produktivität deutlich. In diesem Artikel wollen wir daher auf die datenbankspezifischen Fähigkeiten von Visual Studio eingehen.

Neues Projekt starten

  • Starten Sie Visual Studio 2008 durch Klick auf Start | Alle Programme | Microsoft Visual Studio 2008 | Microsoft Visual Studio 2008.
  • Klicken Sie Datei | Neu | Projekt um eine neue Windows Forms Applikation zu kreieren.
  • Wählen Sie in dem Dialogfenster unter Projekttypen Visual C# | Windows.
  • Klicken Sie nun auf Windows Forms-Anwendung in dem Fenster Vorlagen.
  • Ändern Sie den Namen in Shop, wie in der Abbildung unten gezeigt und klicken Sie auf OK.

vs_new_project

SQL Server Compact Edition Datenbank als Datenquelle

Bevor Sie über den Server-Explorer mit einer Datenbank arbeiten können, müssen Sie sich mit der betreffenden Datenbank verbinden. Um eine neue Verbindung zu einer Datenbank hinzuzufügen, können Sie direkt die Werkzeugliste des Server-Explorers nutzen, oder explizit eine Datenquelle angeben.

  • In Visual Studio, klicken Sie Daten | Datenquellen anzeigen um das Datenquellen Fenster anzuzeigen.
  • Innerhalb des Fenster klicken Sie auf "Neue Datenquelle hinzufügen...". Es erscheint der Assistent zum Konfigurieren von Datenquellen.

vs_datasource_windowDer Assistent zum Konfigurieren von Datenquellen in Visual Studio erlaubt es neue Datenquellen zum Projekt hinzuzufügen. Sie können verschiedene Datenquellen angeben, darunter eine SQL Server- oder eine SQL Server Compact-Datenbankdatei, Access, Webservices oder Speicherobjekte. Der Vorgabewert für die Datenquelle ist die SQL Server-Datenbankdatei. Diese Art der Verbindung ist neu für den SQL Server 2005 und erlaubt es, direkt eine Datei als Datenbank zu verwenden, ohne diese erst mehr oder weniger kompliziert einzurichten. Die Verwendung der SQL Server-Datenbankdatei ist ähnlich einfach wie die Verwendung einer Access-Datei.

Microsoft SQL Server Compact Edition wird vom ADO.NET SqlDataProvider unterstützt. Es ist sogar möglich eine Oracle-Datenbank auszuwählen, da ein OracleDataProvider jetzt standardmäßig mit .NET ausgeliefert wird. Neu ist, dass Sie den DataProvider auswählen können. In älteren Versionen von Visual Studio wurde immer der OleDbDataProvider verwendet, jetzt können Sie auch den SqlDataProvider auswählen. Der DataProvider ist wichtig, da von diesem die Funktionen abhängen, die Ihnen im Server-Explorer zur Verfügung stehen, z.B. um Tabellen anzulegen oder deren Spalten zu editieren.

Für die Beispielanwendung in diesem Artikel werden wir eine SQL Server Compact Edition-Datenbankdatei generieren und anschließend eine eigene Datenbankstruktur erzeugen.

Nachdem Sie auf "Neue Datenquelle hinzufügen..." geklickt haben, können Sie im Assistenten den Datenquelltyp auswählen. Abhängig vom Datenquelltyp wird ein DataSet erstellt. Es handelt sich dabei um ein Speicherabbild der eigentlichen Datenbank. Ein DataSet wird immer dann eingesetzt, wenn Daten mehrmals benötigt und von der Anwendung oft geändert werden. In diesem Fall werden die Daten über den DataAdapter im DataSet gespeichert, wo sie der Anwendung zur weiteren Verwendung zur Verfügung stehen. Das DataSet wird automatisch mit den Objekten der Datenbank gefüllt.

Wählen Sie nun als Datenquelltyp die Datenbank aus und klicken Sie auf Weiter.

assistent_zum konfigurieren_von datenquellen

Der Assistent fordert Sie nun auf die Datenverbindung zu wählen. Klicken Sie auf Neue Verbindung um das Dialogfenster "Verbindung hinzufügen" zu öffnen.

datenverbindung_waehlen

In dem Dialogfeld klicken Sie auf Ändern, um die Datenquelle zu ändern.

verbindung_hinzufuegen

In diesem Dialogfeld können Sie nun die Datenquelle auswählen. Wählen Sie Microsoft SQL Server Compact und klicken Sie auf OK.

datenquelle_wechseln

Wir möchten in diesem Artikel eine eigene Datenbank erstellen. Klicken Sie deshalb auf den Button Erstellen. In dem neuen Dialogfenster können Sie nun den Namen der Datenbankdatei angeben. Die Dateiendung einer SQL Server Compact-Datenbankdatei lautet *.sdf. Wir nennen unsere Datenbankdatei shop.sdf. In dem Dialogfenster können diverse Datenbankeigenschaften ausgewählt werden. Zusätzlich kann die Datenbank verschlüsselt werden, so dass nur mithilfe eines Passwortes darauf zugegriffen werden kann. Wir lassen in unserem Beispiel das Kennwortfeld leer und bestätigen zweimal mit OK.

sql_ce_datenbank_erstellen

Sie können anschließend die neu erstellte Datenbank testen, indem Sie eine Verbindung herstellen. Nachdem nun wieder der Assistent zum Konfigurieren von Datenquellen zu sehen ist - mit der erstellten Datenbank in der Auswahlliste - kann der Button Weiter betätigt werden. Visual Studio weist Sie darauf hin, dass es sich um eine Verbindung zu einer lokalen Datendatei handelt und fragt ob eine Kopie erstellt werden soll. Bestätigen Sie das mit OK.

Nun wird die Verbindungszeichenfolge angezeigt. Belassen Sie den Namen und klicken auf Weiter.

verbindungszeichenfolge_in_der_anwendungskonfigurationsdatei_speichern

Abschließend können Sie den Vorgang beenden. Der Assistent weist Sie an dieser Stelle darauf hin das die Datenbank keine Objekte enthält, folglich werden im Fenster auch keine Objekte gelistet. Der Name des DataSet sollte auch nicht verändert werden.

datenbankobjekte_auswaehlen

Klicken Sie nun auf Fertig stellen. Visual Studio beginnt nun die erforderlichen Dateien zu erstellen und zum Projekt hinzuzufügen.

shop_projektmappen_explorerSie sollten nun im Projektmappen-Explorer einige Veränderungen beobachten können. Visual Studio hat für Sie automatisch einen Verweis auf die notwendigen Assemblys hinzugefügt und die erstellte Datenbank eingebunden. Gleichzeitig wurde ein leeres DataSet erstellt. Damit ist die Konfiguration der Datenbankverbindung abgeschlossen.

Grundlagen zu ADO.NET

ADO.NET ist ein Teil der von Microsoft entwickelten .NET-Plattform. Es handelt sich um eine Sammlung von Klassen, die den Zugriff auf relationale Datenbanken gewährleisten.

ADO.NET gilt als Nachfolger der ActiveX Data Objects (ADO), ist aber um zahlreiche Funktionen erweitert worden, so dass man von einer Neuentwicklung sprechen kann.

Das Hauptanliegen von ADO.NET besteht darin, die Datenbeschaffung von der Bereitstellung und Anzeige der Daten vollständig zu trennen. Um dieses Ziel zu erreichen, spaltet sich ADO.NET in die drei Hauptkomponenten DataSet, Datenprovider und die Klassen der Datenbindung auf. Letztere stellen allerdings keinen integralen Bestandteil von ADO.NET dar, stattdessen dienen sie der Anbindung der Steuerelemente an ein DataSet. ADO.NET kann als Revolution bei den Datenzugriffstechnologien angesehen werden. Es ermöglicht einen einheitlichen Ansatz, um auf Daten unterschiedlicher Datenquellen zuzugreifen, wie z.B. SQL Server, Oracle, Access und SQL Server Compact.

Die Klassen von ADO.NET befinden sich im Namespace „System.Data“. Für die Datenprovider gibt es weitere Namespaces, wie z.B. „System.Data.SqlClient“ oder bei SQL CE „System.Data.SqlServerCe“. Die Datenbindung ist Bestandteil von „Windows.Forms“, da sie nur in den Benutzeroberflächen verwendet werden. Im Namespace „System.Xml“ befinden sich ebenfalls einige Klassen, die für die Zusammenarbeit mit dem DataSet zuständig sind.

architecture_of_ado.net

ADO.NET stellt prinzipiell zwei verschiedene Wege zur Verfügung, an Daten aus einer Datenquelle heranzukommen. Dieser führt entweder über den DataReader oder über das DataSet.

DataSet

Ein DataSet ist eine diskonnektierte, relationale Datenbank im RAM des Computers. Es handelt sich um ein vollständiges Abbild der persistenten Datenbank im flüchtigen Arbeitsspeicher. Ein DataSet wird immer dann eingesetzt, wenn Daten mehrmals benötigt und von der Anwendung oft geändert werden. In diesem Fall werden die Daten über den DataAdapter im DataSet gespeichert, wo sie der Anwendung zur weiteren Verwendung zur Verfügung stehen. Das DataSet verfügt über Methoden, um die gespeicherten Daten im XML-Format in eine Datei oder einen Stream zu schreiben oder von dort zu lesen.

Konzeptionell bedingt erzeugt das DataSet im Vergleich zur direkten Verwendung des DataReaders einen gewissen Overhead. Das betrifft die Speicherauslastung, als auch die Zugriffsgeschwindigkeit. Die Zugriffsgeschwindigkeit ist allerdings vernachlässigbar, so dass die Vorteile des DataSets meist deutlich überwiegen.

Datenprovider

Der Datenprovider ist die Schnittstelle zu einer Datenbank. Er muss fachliche Informationen über die Datenbank besitzen, d.h. er muss die Datenbank kennen. Für unterschiedliche Datenbanken existieren individuelle Datenprovider. Im .NET Framework sind die Datenprovider SQL Server und OLE DB standardmäßig enthalten. Auch für viele Open-Source-Datenbanken, wie z.B. MySQL, existieren .NET-Datenprovider.

Die vier Kernkomponenten der .NET-Datenprovider sind:

  • Connection: Stellt eine Verbindung her, die der Kommunikation mit einer Datenquelle dient. Seit .NET 2.0 ist es möglich bei der Verbindung umfangreiche Metadaten zur Datenbank zu laden.
  • Command: Führt Anweisungen, gespeicherte Prozeduren und Aktionsabfragen aus. Dazu gehören unter anderem SELECT-, UPDATE- oder DELETE-Kommandos.
  • DataAdapter: Der DataAdapter füllt ein DataSet mit Daten und gleicht Aktualisierungen mit der Datenquelle ab. Er fungiert als Brücke zwischen der Datenquelle und einem DataSet-Objekt.
  • DataReader: Es handelt sich um einen vorwärts gerichteten Datensatzleser, der nur einen lesenden Zugriff auf die Daten gestattet. Eine Navigation durch die Datensätze ist dabei nicht möglich, da diese sequentiell abgearbeitet werden.


Zuletzt aktualisiert am Freitag, den 14. Januar 2011 um 09:13 Uhr
 
AUSWAHLMENÜ