LINQ to SQL
Bei diesem etwas längeren Eintrag in meinen Blog soll es darum gehen, wie man mit .NET eine einfache Datenbank-Anbindung erstellt.
Früher musste man immer ein Datenbanklayout mit einem DBMS erstellen, danach musste das ganze noch halbwegs übersichtlich im Programm nachgebildet werden.
Der dritte Schritt war dann irgendwelche SQL-Strings im Programm einzubauen, die Daten abfragten, speicherten und löschten...
Mit dem .NET Framework 3.5 bzw. der Visual Studio Version 2008 und dem zwingend benötigten SQL-Server 2005/2008 hat sich das ganze SEHR vereinfacht, dank der LINQ to SQL-Technologie.
Ich will hier eine kleine Anleitung geben, wie man in C# so ein Datenbank-Projekt erstellt. Dazu reicht auch die Express Version 2008!
1. Hat man ein Projekt erstellt, geht man zuerst mal auf Projekt/Neues Element hinzufügen danach auf LINQ to SQL-Klassen. Als Name gibt man z.B. der Name der Datenbank an.
2. Mit dem O/R-Designer kann man jetzt die Datenbank Struktur erstellen. Dazu fügt man einfach eine neue Klasse ein und erstellt die verschiedenen Eigenschaften. Primärschlüssel, Datentypen und anderes kann im Eigenschaftsfenster festgelegt werden. Auch sind Zuordnungen möglich.

3. Um aus C# jetzt auf die Datenbank zuzugreifen, brauchen wird die Klasse DatabaseDataContext. Als erster Schritt muss die Datenbank auf dem SQL-Server angelegt werden (Der Connection-String kann natürlich auch anderes sein).

4. Um jetzt einen neuen Mitarbeiter hinzuzufügen genügt folgender Code.

5. Das Auslesen aus der DB ist genau so einfach!

Mithilfe von LINQ können jetzt z.B. auch nur solche Mitarbeiter abgefragt werden, die zum Vornamen "Fritz" heissen.

Änderungen können direkt am Objekt durchgeführt werden und müssen dann über SubmitChanges() zur Datenbank übermittelt werden.
Löschen kann man über DeleteOnSubmit() das im Tabellen-Objekt zu finden ist.
Wird das ERM geändert, muss die DB einfach über DeleteDatabase() gelöscht, danach wieder über CreateDatabase() erstellt werden.
Wenn man das ERM lieber nicht über den Designer erstellen will, kann man das auch über den Code erledigen und die Klassen mit verschiedenen Attributen ausstatten.
Früher musste man immer ein Datenbanklayout mit einem DBMS erstellen, danach musste das ganze noch halbwegs übersichtlich im Programm nachgebildet werden.
Der dritte Schritt war dann irgendwelche SQL-Strings im Programm einzubauen, die Daten abfragten, speicherten und löschten...
Mit dem .NET Framework 3.5 bzw. der Visual Studio Version 2008 und dem zwingend benötigten SQL-Server 2005/2008 hat sich das ganze SEHR vereinfacht, dank der LINQ to SQL-Technologie.
Ich will hier eine kleine Anleitung geben, wie man in C# so ein Datenbank-Projekt erstellt. Dazu reicht auch die Express Version 2008!
1. Hat man ein Projekt erstellt, geht man zuerst mal auf Projekt/Neues Element hinzufügen danach auf LINQ to SQL-Klassen. Als Name gibt man z.B. der Name der Datenbank an.
2. Mit dem O/R-Designer kann man jetzt die Datenbank Struktur erstellen. Dazu fügt man einfach eine neue Klasse ein und erstellt die verschiedenen Eigenschaften. Primärschlüssel, Datentypen und anderes kann im Eigenschaftsfenster festgelegt werden. Auch sind Zuordnungen möglich.
3. Um aus C# jetzt auf die Datenbank zuzugreifen, brauchen wird die Klasse DatabaseDataContext. Als erster Schritt muss die Datenbank auf dem SQL-Server angelegt werden (Der Connection-String kann natürlich auch anderes sein).
4. Um jetzt einen neuen Mitarbeiter hinzuzufügen genügt folgender Code.
5. Das Auslesen aus der DB ist genau so einfach!
Mithilfe von LINQ können jetzt z.B. auch nur solche Mitarbeiter abgefragt werden, die zum Vornamen "Fritz" heissen.
Änderungen können direkt am Objekt durchgeführt werden und müssen dann über SubmitChanges() zur Datenbank übermittelt werden.
Löschen kann man über DeleteOnSubmit() das im Tabellen-Objekt zu finden ist.
Wird das ERM geändert, muss die DB einfach über DeleteDatabase() gelöscht, danach wieder über CreateDatabase() erstellt werden.
Wenn man das ERM lieber nicht über den Designer erstellen will, kann man das auch über den Code erledigen und die Klassen mit verschiedenen Attributen ausstatten.
