Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Visual C# 2011 Grundkurs

Datenbankdateien

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Wem die Möglichkeit fehlt, auf dem Rechner, der später die Anwendung ausführen soll, einen SQL Server zu installieren, kann Datenbankdateien nutzen. Damit verliert man zwar viele Vorteile des SQL Servers, kann aber dennoch in gewohnter Weise mit den Daten arbeiten.
11:04

Transkript

Wenn man eine datenbankgestützte Anwendung schreibt, hat man das Problem, dass man nicht immer die Möglichkeit hat auf dem Rechner, auf dem das Programm später ausgeführt wird, solch eine Datenbank zu installieren. Trotzdem möchte man eventuell nicht unbedingt auf solche Datenbanken-Funktionalitäten verzichten. Für so einen Fall gibt es Datenbankdateien. Eine Datenbankdatei ist eine normale Datei und diese Datei kann ich innerhalb von C# ansprechen wie eine normale Datenbank und merke eigentlich fast gar nicht, dass es so eine Datei ist. Wenn ich dann meine Anwendung auf mehrere Rechner verteile, dann wird diese Datei mitkopiert und ich brauche dann dort keinen SQL-Server, um dieses Programm auszuführen. Der Nachteil ist natürlich, wenn ich dann das Programm z.B. auf zwei verschiedene Rechner kopiere, dann hat jeder davon seine eigene Datenbank und man kann nicht mehr zusammen mit beiden Programmen an einer einzigen Datenbank arbeiten. Aber je nachdem, welches Programm man programmiert, ist das manchmal egal. Wir erstellen so eine Datenbankdatei mal. Wir haben hier auf der linken Seite den Datenbank-Explorer. Diesen Datenbank-Explorer findet man unter Ansicht, dann unter weitere Fenster und dann hier der Datenbank-Explorer. Im Datenbank-Explorer kann ich jetzt hier "Mit Datenbank verbinden" anklicken. Das mache ich mal. Jetzt kann ich hier oben eine Datenquelle angeben. Und hier stoßen wir jetzt das erste Mal an die Grenzen von Microsoft Visual Studio Express Version. Denn wenn ich hier mal hier oben auf "Datenquelle ändern" gehe, dann kann ich hier zunächst eine Access-Daten-Datei also von Microsoft Access, von dem Office-Produkt, auswählen; ich kann eine SQL-Server-Datendatei auswählen, das was wir später haben wollen, und SQL-Server Compact 3.5. Ich kann aber an dieser Stelle leider nicht den normalen SQL Server Express auswählen. Das könnte ich jetzt mit einer kommerziellen Version von Visual Studio. Das heißt nicht, dass ich innerhalb von Visual Studio und mit C# und mit C# 2010 Express keine Datenbanken ansprechen kann. Ich kann das eben halt mit den normalen ADO.NET-Klassen, also mit der Connection-Klasse z.B. Aber andere Dinge, wie z.B. das Entity Framework oder LINQ to SQL - was eben relativ schöne Technologien sind, bei denen mir Visual Studio sehr hilft - kann ich leider in der Express-Version nicht mit dem SQL-Server sondern, das werden wir später sehen, nur mit Datenbank-Dateien nutzen. Wir wählen auf jeden Fall die SQL-Server Datenbankdatei aus und wählen uns als Namen für die Datenbank mal "Database". Danach klicken wir auf "OK", dann wird uns gesagt, dass die Datei nicht vorhanden ist, ob wir sie erstellen möchten? Natürlich möchten wir das und dann haben wir hier oben im Datenbank-Explorer diese Datenbank drin. Wenn ich jetzt eine kommerzielle Version vom Visual Studio hätte, dann könnte ich mir hier z.B. nochmal einen SQL-Server einbinden und diesen SQL-Server würde ich jetzt genauso administrieren, wie ich es mit dieser Datenbank-Datei mache. Wir haben hier so eine Ordner-Struktur unterhalb dieser Datenbank, ich kann hier Datenbank-Diagramme erstellen und Tabellen erstellen. Und wir wollen uns jetzt mal so eine kleine Tabellen-Struktur erstellen. Das könnte ich hier mit einem Rechtsklick auf "Neue Tabelle hinzufügen" machen. Aber wir wählen mal den Weg über Datenbank-Diagramme, weil das besonders am Anfang wesentlich schöner ist, weil man es dann besser visualisiert hat, vor allen Dingen das mit den Abhängigkeiten besser sieht. Also ein Rechtsklick hier und sagen "Neues Diagramm hinzufügen". Dann wird mir noch gesagt, dass eben halt für diese Datenbank-Diagramme noch bestimmte Objekte fehlen, die nachinstalliert werden müssen. Das machen wir mal und dann haben wir das Datenbank-Diagramm angelegt. Hier hätten wir jetzt die Möglichkeit bereits bestehende Tabellen, die wir hier hätten anlegen können, hinzuzufügen. Möchten wir nicht, wir möchten quasi alles von Anfang an neu machen. Mit einem Rechtsklick hier auf die Oberfläche können wir eine neue Tabelle anlegen. Diese Tabelle nennen wir "Contact", bestätigen mit "OK" und dann wird hier die Tabelle "Contact" angelegt. Wir möchten jetzt eine Datenbank-Tabelle erstellen. Eine Datenbank-Tabelle muss immer einen Primärschlüssel haben. Ein Primärschlüssel ist später für jeden Datensatz ein bestimmter Wert, mit dem dieser Datensatz in der gesamten Tabelle eindeutig identifiziert werden kann. Wir wollen später Kontaktinformationen speichern, das heißt jeder von diesen Kontaktinformationen wird später eine eindeutige Nummer haben, über den ich den in dieser Tabelle identifizieren kann. Wir nennen diese Spalte mal "Id" für Identifikation und wir müssen jetzt gewisse Dinge einstellen hier, um so einen Primärschlüssel einstellen zu können. Zunächst müssen wir einen numerischen Wert haben. Wir sehen hier, es gibt eine ganze Menge von Werten; wir nehmen mal einen Integer. Das "0 zulassen" hinten müssen wir wegmachen. "0 zulassen" heißt, dass dieser Wert, wenn ein neuer Datensatz eingefügt wird, leer sein könnte; darf er natürlich bei einem Primär-Schlüssel nicht. Dann als nächstes muss ich hier vorne einen Rechtsklick machen und sagen, diese Spalte ist ein Primärschlüssel. Und schlussendlich muss ich hier unten in den Eigenschaften sagen, dass ich hier unten einstelle, es ist eine Identifikationsspalte. Damit haben wir so einen Primärschlüssel angelegt. In diesem Primärschlüssel ist jetzt eine Zahl und diese Zahl wird automatisch eingefügt, wenn ich neue Datensätze einfüge. Als nächstes haben wir dann einmal den "First name", "Last name" und die "Webadresse". Als Datentyp wählen wir für alle drei einmal varchar 50 aus. Das ist eine Zeichenkette variabler Länge mit maximal 50 Zeichen. Keiner von diesen Werten darf "null" sein und zusätzlich wollen wir später eine Beziehung zur Tabelle "Category" aufstellen, also wir wollen zu jedem Kontakt auch eine Kategorie haben - Kategorien wie Freunde, Firmen, Kontakte oder sonst irgendetwas. Und deswegen haben wir hier den sogenannten Fremdschlüssel. Dieser Fremdschlüssel heißt "FK Category", also wie die spätere Tabelle. Dieser Fremdschlüssel wird später eine Verbindung von jedem Datensatz zu einer spezifischen Kategorie aufbauen. Aber das sehen wir gleich noch. Hier wählen wir wieder "int" aus und dann sind wir mit dieser Tabelle so weit fertig. Wir können jetzt hier mit "Tabellenansicht" auf "Spaltennamen" umschalten, dann wird diese Tabelle etwas kleiner. Wir legen die nächste Tabelle an, das ist diesmal die Tabelle "Category" und auch diese Category-Tabelle hat zunächst wieder einen Primärschlüssel, dasselbe Spiel wie eben. "Id" als Name, "int" als Datentyp, darf nicht "null" sein. Er ist ein Primärschlüssel und er ist eine Identifikationsspalte. Dieses Vorgehen sieht am Anfang ein bisschen kompliziert aus, aber wenn Sie das zwei bis drei Mal gemacht haben, dann haben Sie das mehr oder weniger verinnerlicht. Also hier haben wir dann noch einen Namen von dieser Kategorie, auch hier nehmen wir wieder "varchar". Und auch der darf nicht "null" sein. Wieder ein Rechtsklick hier oben "Tabellenansicht - Spaltennamen", damit wir das ein bisschen übersichtlicher haben. Jetzt haben wir, wie gesagt, an dieser Stelle einen Fremdschlüssel "FK Category". Man muss sich das nachher so vorstellen, ich habe hier eine Kategorie, z.B. "Freunde", diese Kategorie hat die Id 1 und wenn ich jetzt hier einen Kontakt eintrage, der zu meinen Freunden gehört, dann steht in dem Feld "FK Category" auch eine 1. Dann kann ich später hingehen, wenn ich die ganzen Kontakte auslese und sagen, hol mir mal zu diesem Kategorie-Wert hier den jeweils passenden Namen. Damit diese Beziehung zwischen "FK Category" und diesem Id-Feld auch wirklich im System verankert ist, müssen wir eine Beziehung setzen. Eine Beziehung setzen wir, indem wir vorne auf dieses Feld klicken, die linke Maustaste gedrückt halten. Man sieht schon das rechts in dem Cursor ein kleines Plus ist und dann ziehe ich mit dem Cursor hier hinten auf diesen Primärschlüssel. Damit habe ich jetzt eine sogenannte Fremdschlüssel-Beziehung angelegt. Wenn man das weg macht sieht man hier, das ist eben das Zeichen für diese Beziehung. Man liest das Ganze so: Kategorie hat mehrere Kontakte und ein Kontakt hat eine Kategorie. Es ist klar, wenn ich später eine Kategorie "Freunde" habe, können da mehrere Kontakte drin sein und jeder Kontakt kann nur in einer Kategorie sein. Man könnte es natürlich auch so umsetzen, dass ein Kontakt in mehreren Kategorien ist, aber das machen wir hier mal nicht. Wenn wir jetzt hier oben auf "Speichern" gehen, dann werden diese Tabellen in unserer Datenbank-Datei angelegt. Zunächst müssen wir das Diagramm speichern, ich nenne das mal "Diagramm". Dann sagt er mir hier, dass er die Tabellen jetzt anlegen muss, wenn er dieses Diagramm speichert. Das machen wir und dann sind hier unter "Tabellen" diese beiden Tabellen angelegt. Jetzt möchten wir diese Tabellen hier noch mit Werten füllen. Zunächst legen wir eine Kategorie an und dann sagen wir hier mal "Tabellendaten anzeigen". In diesem "Tabellendaten anzeigen" kann ich auch gleichzeitig neue Datensätze einfügen. Nehmen wir hier mal eine Kategorie "Freunde" und eine Kategorie "Kunden" z.B. Man sieht, automatisch wird hier vorne die Id eingefügt, also das war eben unser Primärschlüssel, den wir festgelegt haben - heißt, dass wir jetzt quasi eine Eindeutigkeit in unserer Tabelle haben. Dasselbe machen wir nochmal bei den Kontakten, ich sage auch hier wieder "Tabellendaten anzeigen" und dann fange ich wieder an mit mir, mit der Adresse natürlich auch. Einmal zu schnell geklickt, ich muss natürlich noch eine Kategorie eingeben, weil eben dieser Wert nicht "null" ist und ich packe mich mal in die Kategorie "Freunde" rein. "Freunde", hatten wir gesehen, hat die Id 1. Dann geben wir mal noch eine weitere Person ein, das ist der Golo, natürlich auch eine Adresse und zwar ist das goloroden.de. Die Kategorie hier ist 2, ich mache Golo jetzt mal vorübergehend einfach zu meinem Kunden. Damit habe ich jetzt diese Daten gespeichert und ich brauche jetzt hier noch nicht mal auf "Speichern" klicken, weil das jetzt direkt schon in die Datenbank, also in unsere Datenbankdatei, eingegeben wurde. Zusätzlich haben wir jetzt hier die Möglichkeit SQL Queries  an unsere Datenbank, bzw. unsere Datenbankdatei, zu schicken. Das heißt also Anfragen an unseren Datenbankserver, dass er uns gewisse Daten geben soll. Dazu machen wir unten einen Rechtsklick auf die Tabelle "Kontakt" und sagen "Neue Abfrage". Dann sagt er uns hier, ob wir Tabellen hinzufügen wollen, wir sagen einfach mal "Schließen", das wollen wir nicht. Und nutzen mal dieses Feld hier. Hier oben könnten wir das jetzt auf graphische Art zusammenklicken. Für diejenigen von Ihnen, die schon mal mit Access gearbeitet haben, das ist eben genauso etwas, das man normalerweise unter Access nutzen kann. Wir wollen das einmal hier drin schreiben. Und zwar kann man dann ein sogenanntes SQL Statement schreiben und da gibt es sowas wie "Select*", also hole mir alles von, da gebe ich jetzt den Tabellennamen an und dann sage ich hier mal "Contact". Hier oben mit dem roten Ausrufezeichen kann ich dieses SQL Statement jetzt ausführen, das mache ich einmal und dann hat er mir hier unten die Daten angezeigt. Zusätzlich hier oben hat er das Ganze jetzt ein bisschen umgebaut, weil ich hatte einen Stern eingefügt, das heißt für den SQL-Server alle Spalten. Er hat es halt eben jetzt hier so umgewandelt, dass er mir hier alle Spalten hingeschrieben hat. Das ist so ein Feature das Visual Studio anbietet. Zusätzlich kann ich hier unten noch das Ganze einschränken. Ich könnte z.B. sagen "Where", also die Bedingung, und dann könnte ich sagen, gib mir alle Datensätze, bei denen die Kategorie 1 ist, also die meine Freunde sind. Deshalb schreibe ich hier "FK Category=1". Wir führenen das Query noch einmal aus, hier oben mit dem Ausrufezeichen, und man sieht, dann bin nur noch ich in der Ergebnisliste. Wir haben uns in diesem Video einmal angeguckt, wie wir, wenn wir in bestimmten Szenarien keinen Datenbankserver haben, trotzdem mit Datenbanken arbeiten können. Dazu gibt es die Datenbankdateien. Datenbankdateien sind normale, lokale Dateien und innerhalb von meinem C# oder auch im Visual Studio sieht das Ganze aus wie eine Datenbank und ich kann damit arbeiten wie mit einer richtigen Datenbank. Das Problem ist natürlich, wenn ich mehrere Instanzen von meiner Anwendung auf mehreren Rechnern habe, arbeitet jeder von diesen Anwendungen mit einem lokalen Server, also mit einer lokalen Datenbankdatei, und nicht wie bei einem normalen SQL-Server eben halt mit einem zentralen, sodass man da gemeinsam an den Daten arbeiten kann.

Visual C# 2011 Grundkurs

Steigen Sie in die C#-Programmierung ein und lernen Sie sowohl die Grundlagen der Sprache C# als auch die Entwicklungsumgebung Visual Studio 2010 und .NET-Framework kennen.

7 Std. 28 min (81 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Visual Studio Visual Studio 2010
Exklusiv für Abo-Kunden
Erscheinungsdatum:27.06.2011

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!