Book description
Das vorliegende Buch bietet nicht nur den idealen Einstieg in die Datenbank-Programmierung, sondern eignet sich auch bestens als Nachschlagewerk für Fortgeschrittene, wobei auch LINQ und ADO.NET Entity Framework ausgiebig besprochen werden. Traditionsgemäß steht bei dieser gründlich überarbeiteten und erweiterten Neuauflage der praktische Nutzen im Vordergrund. Während der Einsteiger nach dem bewährten Prinzip ""soviel wie nötig"" schnell zu ersten Erfolgserlebnissen geführt wird, kann sich der Profi zahlreiche Anregungen aus den vielfältigen Konzepten der Datenbank-Programmierung holen und die Effizienz seiner Arbeit als Entwickler deutlich steigern. Wer mit wenig Aufwand zeitgemäße .NET-Datenbank-Anwendungen erstellen will, kommt heute kaum noch an Visual C# 2010 und Visual Studio 2010 vorbei.
Alles zur Datenbank-Programmierung, inkl. LINQ und Entity Framework
Ideal auch für Umsteiger von Visual Basic
Table of contents
- Datenbankprogrammierung mit Visual C# 2010
- A Note Regarding Supplemental Files
- Vorwort
-
1. Erste Schritte
- Unsere Werkstatt
- C# und die Datenbankprogrammierung
- Was ist neu in .NET 4.0/Visual Studio 2010?
- Ein wenig Datenbanktheorie
-
Einführungsbeispiele
- 1.1 ... auf eine lokale Access-Datenbank zugreifen?
- 1.2 ... mit dem Microsoft SQL Server arbeiten?
- 1.3 ... eine einfache LINQ to SQL-Anwendung schreiben?
- 1.4 ... eine einfache ASP.NET-Webanwendung entwickeln?
- 1.5 ... meine erste WPF-Anwendung erstellen?
- 1.6 ... einen einfachen WCF-Dienst entwickeln?
-
2. Einführung in LINQ
- Die LINQ-Philosophie
- LINQ-Grundlagen
-
Abfragen mit LINQ to Objects
- Grundlegende Syntax
- Zwei alternative Schreibweisen von LINQ-Abfragen
- Die wichtigsten Abfrageoperatoren
- Die Projektionsoperatoren Select und SelectMany
- Der Restriktionsoperator Where
- Die Sortierungsoperatoren OrderBy und ThenBy
- Der Gruppierungsoperator GroupBy
- Verknüpfen mit Join
- Aggregat-Operatoren
- Verzögerte Ausführung von LINQ-Abfragen
- Konvertierungsmethoden
- Abfragen mit PLINQ
- How-to-Beispiele
-
3. SQL in Theorie und Praxis
- Einführung
- Testprogramm und Beispieldatenbank
-
Daten abfragen
- Abfragen mit SELECT
- Alle Spalten auswählen
- Auswahl der Spalten
- Filtern
- Beschränken der Ergebnismenge
- Eindeutige Records/doppelte Datensätze
- Tabellen verknüpfen
- Tabellen vereinigen
- Datensätze sortieren
- Datensätze gruppieren
-
Unterabfragen
- Das Ergebnis einer Query ist Bedingung (WHERE) einer anderen Query
- Liefert die Subquery eine Menge von Werten, müssen Sie mit ANY/ALL einen dieser Werte auswählen
- »=ANY« kann durch »IN« ersetzt werden (»<>ALL« entspricht »NOT IN«)
- Eine WHERE-Klausel kann mehrere Subqueries enthalten
- Synchronisieren von Unterabfragen mit der Hauptabfrage
- Daten manipulieren
- Erweiterte SQL-Funktionen
- Datenbankverwaltung mit SQL (DDL)
- Datenbankentwurf optimieren
- SQL in der C#-Praxis
-
How-to-Beispiele
- 3.1 ... nach einem INSERT das Zählerfeld abfragen?
- 3.2 ... die Anzahl der Datensätze ermitteln?
- 3.3 ... Datumsteile in SQL zur Suche nutzen?
- 3.4 ... die Groß-/Kleinschreibung berücksichtigen?
- 3.5 ... WITH OWNERACCESS OPTION verwenden?
- 3.6 ... Datensätze richtig verknüpfen?
- 3.7 ... doppelte Datensätze aus einer Tabelle löschen?
- 3.8 ... die IFF-Funktion ersetzen?
- 3.9 ... ein einfaches SQL-Abfrageprogramm erstellen?
- 3.10 ... Aggregatfunktionen auswerten?
- 3.11 ... SQL-Injection verhindern?
- 3.12 ... die Access 2007-Datenbankfeatures unterstützen?
- Übersichten
-
4. Einführung ADO.NET
- Die wichtigsten Klassen in ADO.NET
-
Das Connection-Objekt
- Allgemeiner Aufbau
- OleDbConnection
- SqlConnection
- Fehlerbehandlung beim Öffnen einer Verbindung
- Schließen einer Verbindung
- Verbindungspooling
- Transaktionen
- Eigenschaften des Connection-Objekts
- Methoden des Connection-Objekts
- Ereignisse des Connection-Objekts
- Der ConnectionStringBuilder
- ConnectionString in den Anwendungseinstellungen speichern
- Das Command-Objekt
- Parameter-Objekte
- Das CommandBuilder-Objekt
- Das DataReader-Objekt
- Das DataAdapter-Objekt
- Arbeiten mit Excel-Arbeitsmappen
- Weitere Features des Datenzugriffs unter ADO.NET
-
How-to-Beispiele
- 4.1 ... wichtige ADO.NET-Objekte schnell kennen lernen?
- 4.2 ... eine Aktionsabfrage ausführen?
- 4.3 ... Daten direkt zur Datenbank hinzufügen oder löschen?
- 4.4 ... eine Access-Auswahlabfrage ausführen?
- 4.5 ... parametrierte Abfragen ausführen?
- 4.6 ... die Datenbank aktualisieren?
- 4.7 ... RowUpdating-/RowUpdated-Ereignisse verstehen?
- 4.8 ... Schemainformationen der Datenbank abrufen?
- 4.9 ... einen Connectionstring verschlüsseln?
- 4.10 ... eine klassische Datenzugriffsschicht entwickeln?
- Übersichten
-
5. Das DataSet-Objekt im Detail
- Einführung
-
Das DataTable-Objekt
- DataTable erzeugen
- Spalten hinzufügen
- Berechnete Spalten
- Primärschlüssel ergänzen
- Einbinden von Constraints
- Hinzufügen von Relationen
- Zeilen zur DataTable hinzufügen
- Auf den Inhalt einer DataTable zugreifen
- Weitere Hinweise zum Bearbeiten von Zeilen
- Zeilen löschen
- Zeilenstatus und Zeilenversion
- Ereignisse des DataTable-Objekts
- Datenansichten mit DataView
- Weitere DataSet-Features
- Typisierte DataSets
- LINQ to DataSet
- Die Qual der Wahl
-
How-to-Beispiele
- 5.1 ... eine DataTable erzeugen und in einer Binärdatei speichern?
- 5.2 ... eine DataTable in einer XML-Datei abspeichern?
- 5.3 ... Master-Detailbeziehungen im DataGrid anzeigen?
- 5.4 ... in einem DataView sortieren und filtern?
- 5.5 ... nach Datensätzen suchen?
- 5.6 ... vereinfacht nach Datensätzen suchen?
- 5.7 ... zwischen DataTable und DataReader umwandeln?
- 5.8 ... große Datenmengen in ein DataSet laden?
- 5.9 ... ein DataSet binär serialisieren?
- 5.10 ... ein DataSet in einen XML-String konvertieren?
- 5.11 ... ein untypisiertes in ein typisiertes DataSet laden?
- 5.12 ... ein typisiertes DataSet mit LINQ abfragen?
- 5.13 ... mit LINQ to DataSet die Datenbank aktualisieren?
- Übersichten
-
6. Windows Forms-Datenbindung
- Einführung
- Manuelle Datenbindung an einfache Datenfelder
- Manuelle Datenbindung an Listen und Tabelleninhalte
- Entwurfszeit-Datenbindung an ein typisiertes DataSet
- Drag & Drop-Datenbindung
- Navigieren im DataSet
- Die Anzeige formatieren
-
Das DataGridView
- Vom DataGrid zum DataGridView
- Grundlegende Datenbindung
- Standardmäßige Anzeige und Bedienung
- Wichtige Spalteneinstellungen
- Automatische Größenanpassungen
- Selektieren von Zellen
- Columns- und Rows-Auflistungen
- DataGridViewCellStyle-Objekte
- Spaltentypen
- Editieren im DataGridView
- Fehlerbehandlung
- Eingabeprüfung
-
How-to-Beispiele
- 6.1 ... eine Objekt-Datenquelle verwenden?
- 6.2 ... Steuerelemente an einen Objektbaum binden?
- 6.3 ... Detailinformationen mit ListBox/ComboBox anzeigen?
- 6.4 ... Steuerelemente manuell an ein DataSet binden?
- 6.5 ... zwei Formulare an eine Datenquelle binden?
- 6.6 ... mittels ComboBox zwei Tabellen verknüpfen?
- 6.7 ... ein typisiertes DataSet manuell binden?
- 6.8 ... 1:n-Beziehungen per Drag & Drop-Datenbindung anzeigen?
- 6.9 ... die Spalten im DataGridView formatieren?
- 6.10 ... mit DataReader und ListView arbeiten?
- 6.11 ... Bilder aus der Datenbank anzeigen?
- 6.12 ... BLOB-Daten verwalten?
- 6.13 ... BLOB-Daten anzeigen?
- 6.14 ... das DataGridView als Datenbank-Frontend verwenden?
- 6.15 ... Datenbindung mit LINQ to SQL kennen lernen?
- 6.16 ... den DataRepeater für die Anzeige verwenden?
-
7. Datenbindung – WPF
- Grundprinzip
- Binden an Objekte
- Binden von Collections
- Ein Blick hinter die Kulissen
- Drag & Drop-Datenbindung
- Formatieren von Werten
- Das DataGrid als Universalwerkzeug
- How-to-Beispiele
-
8. Datenbindung in ASP.NET-Anwendungen
- Übersicht Datenbindung unter ASP.NET
- SqlDataSource im Detail
- Zugriff auf Geschäftsobjekte mit der ObjectDataSource
-
Typisierte DataSets und ObjectDataSource
- Verwendung von TableAdaptern in ASP.NET-Seiten
- Datenauswahl und Anzeige mit TableAdaptern
- Datenmanipulation mit TableAdaptern
-
ObjectDataSource und typisierte DataSets
- 1. TableAdapter und ObjectDataSource verknüpfen
- 2. Datenmethoden zuordnen
- 3. Datenquellen miteinander verknüpfen (1:n-Beziehung)
- 4. GridView-Funktionen aktivieren
- 5. Parameter der Datenmethoden mit Controls verknüpfen
- 6. Unser erster Quellcode
- 7. Nachbessern
- 7. Und doch wieder TableAdapter
- 8. Etwas Luxus bitte
- LinqDataSource
- EntityDataSource
- QueryExtender
- Weitere Datenquellen
- Das GridView-Steuerelement im Detail
- Weitere Steuerelemente für die Datenbindung
- Eingabeprüfung mit den Validator-Steuerelementen
- Reports in ASP.NET-Anwendungen verwenden
- Weitere Themen
-
How-to-Beispiele
- 8.1 ... die Zellen im GridView formatieren?
- 8.2 ... ein GridView mit Scrollbar realisieren?
- 8.3 ... ein GridView mit Mouseover-Effekt realisieren?
- 8.4 ... GridView-Daten im Excel-Format exportieren?
- 8.5 ... Detaildaten in einem Popup-Fenster anzeigen?
- 8.6 ... eine Zeilensumme im GridView berechnen?
- 8.7 ... reagieren, wenn keine Daten vorhanden sind?
- 8.8 ... im GridView eine Spaltensummen berechnen?
- 8.9 ... korrekte Währungswerte im GridView anzeigen?
- 8.10 ... Eingabewerte im GridView validieren?
- 8.11 ... einen E-Mail-Versand in ASP.NET realisieren?
- 9. Die Microsoft Chart-Controls
-
10. Reporting Services
- Übersicht
- Einführungsbeispiele
- Unsere Werkzeuge zum Berichtsentwurf
- Sortieren, Gruppieren und Filtern von Datensätzen
- Kreuztabellenberichte
- Diagramme darstellen
- Parameter anwenden
- Berichtsvariablen
- Master-Detail-Reports
- Noch mehr Reporting
- Hinzufügen von benutzerdefiniertem Code
- Ergänzungen zum ReportViewer
- How-to-Beispiele
-
11. Crystal Report
- Übersicht
- Wichtige Funktionen im Überblick
- Reports entwerfen
- Programmieren der Druckvorschau
- Direkte Ausgabe auf dem Drucker
- Exportieren von Reports
- Praxisbeispiel – Rechnung mit Crystal Report drucken
-
How-to-Beispiele
- 11.1 ... ein Deckblatt erzeugen?
- 11.2 ... Seitenzahlen, Druckdatum etc. einblenden?
- 11.3 ... Spaltensatz oder Etiketten realisieren?
- 11.4 ... die Seitenränder festlegen?
- 11.5 ... mehrspaltige Reports erstellen?
- 11.6 ... einen Seitenumbruch erzwingen?
- 11.7 ... die Position und Größe der Druckvorschau vorgeben?
- 11.8 ... Reports in die Applikation einbetten?
- 11.9 ... Querdruck auswählen?
- 11.10 ... RTF-/HTML-Text ausgeben?
- 11.11 ... den Report zur Laufzeit auswählen?
- 11.12 ... Summen, Anzahlen, Mittelwerte etc. berechnen?
- 11.13 ... farbliche und optische Formatierungen realisieren?
- 11.14 ... den Datenbankpfad zur Laufzeit anpassen?
- 11.15 ... die Login-Informationen zur Laufzeit ändern?
- 11.16 ... Crystal Report unter LINQ to SQL nutzen?
-
12. Access-Datenbanken
- Ein erster Blick auf Microsoft Access-Datenbanken
- Zugriff aus C#
- Datenbanken erstellen
- Tabellen/Indizes erstellen/verwalten
- Zugriffsschutz in Access-Datenbanken
- Einbinden externer Tabellen
- Replizieren von Datenbanken
- Datenbankanalyse
- Weitere Aufgabenstellungen
- Access 2007-Datenbanken
- Access 2010-Datenbanken
-
How-to-Beispiele
- 12.1 ... ADO installieren?
- 12.2 ... Access-Datenbanken exklusiv öffnen?
- 12.3 ... die Zugriffsgeschwindigkeit auf Access-Datenbanken erhöhen?
- 12.4 ... Access-Datenbanken im Netzwerk verwenden?
- 12.5 ... alle aktiven Verbindungen zur Datenbank auflisten?
- 12.6 ... eine Spalte mit eindeutigen Zufallswerten erzeugen?
- 12.7 ... das Datenbank-Kennwort ändern?
- 12.8 ... Abfragen über mehrere Datenbanken realisieren?
- 12.9 ... die Beschreibung von Datenbankfeldern abrufen?
-
13. Microsoft SQL Server-Einstieg
- Übersicht
- Datenzugriff aus C#
- Transact-SQL
- Datenbanken mit DMO verwalten
- SQL Server Management Objects (SMO)
- Datensicherheit auf dem Microsoft SQL Server
-
How-to-Beispiele
- 13.1 ... den Netzwerkzugriff auf den SQL Server Express aktivieren?
- 13.2 ... den SQL Server Express erkennen?
- 13.3 ... den SQL Server Express administrieren?
- 13.4 ... alle Nutzer einer Datenbank ermitteln?
- 13.5 ... alle registrierten Microsoft SQL Server ermitteln?
- 13.6 ... alle Datenbanken und deren Tabellen ermitteln?
- 13.7 ... eine Tabelle löschen?
- 13.8 ... eine Tabelle mit den SMO erzeugen?
- 13.9 ... die Anzahl der Datensätze beschränken?
- 13.10 ... Platzhalterzeichen in T-SQL verwenden?
- 13.11 ... Teilstrings erzeugen?
- 13.12 ... Leerzeichen entfernen?
- 13.13 ... mit DROP INDEX jeden Index löschen?
- 13.14 ... @@ERROR korrekt verarbeiten?
- 13.15 ... die Anzahl der Datensätze einer Abfrage bestimmen?
- 13.16 ... IFF ersetzen?
- 13.17 ... mit Bedingungen Feldinhalte formatieren?
- 13.18 ... Abfragen mit Platzhaltern beschleunigen?
- 13.19 ... die Groß-/Kleinschreibung berücksichtigen?
- 13.20 ... das Ergebnis einer Stored Procedure speichern?
- 13.21 ... eine Datenbank umbenennen?
- 13.22 ... eine Datenbank zwischen Servern verschieben?
- 13.23 ... eine Datenbankstruktur kopieren?
- 13.24 ... nach dem Löschen IDENTITY auf 0 setzen?
- 13.25 ... eine Tabellenspalte umbenennen?
- 13.26 ... Unterschiede zwischen temporären Tabellen erkennen?
- 13.27 ... Daten aus verschiedenen Datenbanken anzeigen?
- 13.28 ... die PRINT-Anweisung in C# anzeigen?
- Übersichten
-
14. Microsoft SQL Server-Programmierung
-
Praktisches Arbeiten mit dem SQL Server
- Erstellen von SQL Server-Datenbanken
- Erzeugen und Verwalten von Tabellen
- Datenbankdiagramme
- Erzeugen und Verwenden von Sichten (Views)
- Gespeicherte Prozeduren verwenden
- Programmierung/Verwendung von Triggern
- Volltextabfragen
- Die Verwendung von FileStream-Storage
- Massenkopieren
- Datenbanken sichern und wiederherstellen
- Fehlerbehandlung
- Weitere Features des Datenzugriffs unter ADO.NET
- CLR-Integration im SQL Server
- XML-Unterstützung
-
How-to-Beispiele
- 14.1 ... Aktualisierungs- und Löschweitergaben realisieren?
- 14.2 ... Änderungen in Tabellen protokollieren?
- 14.3 ... SQL-Anweisungen debuggen?
- 14.4 ... ein SqlConnection-Objekt konfigurieren?
- 14.5 ... eine gespeicherte Prozedur aufrufen?
- 14.6 ... mit Table Value-Parametern arbeiten?
- 14.7 ... mit Stapel-Abfragen arbeiten?
- 14.8 ... Query Notifications einrichten und auswerten?
- 14.9 ... die MARS-Technologie kennen lernen?
- 14.10 ... Row-Constructors verwenden?
-
Praktisches Arbeiten mit dem SQL Server
-
15. SQL Server Compact
- Einsatzszenarien
- Installation
- Datenbanken erstellen, verwalten und einbinden
- Zusammenarbeit mit dem DataSet
- Datenzugriff mit SqlCeResultSet
- Zugriff mit LINQ to SQL
- Zugriff per Entity Data Model
- Der Einsatz als Local Database Cache
-
Tipps & Tricks
- Datenbank auf Remotelaufwerk nutzen
- Performance verbessern
- Datenbank von schreibgeschütztem Medium starten
- Datenbankinformationen abrufen
- Datenbank reparieren
- Datenbank komprimieren
- Datenbank nachträglich verschlüsseln
- Ein Datenbank-Backup realisieren
- Fehler in der Visual Studio-IDE vermeiden
- Daten vom SQL Server zum SQL Server Compact zu kopieren
- Distribution
- Weitere Hilfe
-
16. SQLite – Ein Mini ganz groß
- Was ist eigentlich SQLite?
- Vorbereitungen
-
Praktische Aufgabenstellungen
- Erzeugen neuer Datenbanken mit Visual Studio
- Alternative Möglichkeit zum Administrieren der Datenbank
- Datenbank/Datenbankobjekte per Code erstellen
- Mögliche Connectionstring-Parameter
- Datenbankzugriff per DataSet realisieren
- Besonderheit: InMemory-Datenbank
- Datenzugriff mit dem Entity Framework
- SOUNDEX verwenden
- Volltextabfragen realisieren
- Eigene skalare Funktionen in C# realisieren
- Eigene Aggregat-Funktionen in C# realisieren
- Tipps & Tricks
-
17. LINQ to SQL
- Übersicht
- Der schnelle Weg zu den SQL Server-Daten
- Der steinige Weg zur Persistenz
- Datenauswahl/Datentypen
- Datenbindung
- Bearbeiten und Aktualisieren
- Eingabevalidierung
- Stored Procedures
- Weitere LINQ to SQL-Features
- Schlussbemerkung
-
18. Arbeiten mit dem Entity Framework
- Das Grundkonzept
- Unsere Beispieldatenbank
- Der EDM-Entwurf
- Einsatz des EntityClient für die Datenabfrage
- Verwenden der Objektdienste
- Kurzeinführung in Entity SQL (eSQL)
-
Praktisches Arbeiten mit dem EDM
- Skalare Werte abfragen
- Abfragen mit Projektion
- Detaildaten/Verwendung der Navigationseigenschaften
- Lazy Loading
- Wie funktioniert das explizite Laden?
- Was passiert beim vorzeitigen Laden (Eager-Load)?
- Delay Loaded
- Zugriff mit Paging
- Abrufen einzelner Entitäten
- Lokale Datenaktualisierung per ObjectContext
- Einfaches Einfügen von Datensätzen
- Abrufen eines Identity-Wertes nach dem Einfügen
- Einfügen von Datensätzen in 1:n/m:n-Beziehungen
- Bearbeiten von Entitäten
- Übernahme der Daten mit SaveChanges
- Löschen von Entitäten
- Verwendung von Stored Procedures
- Funktionsimporte
- Die Eigenschaft EntityState
- Verwendung des ObjectStateManagers
- Anhängen von Objekten
- Arbeiten mit Vererbung
- POCO-Unterstützung
- Validierung
- Verwenden der partiellen Klassen
- Abschließender Hinweis
- How-to-Beispiele
-
19. WCF – eine Einführung
- Die Programmierung verteilter Systeme
- Allgemeiner Aufbau eines WCF-Systems
- Das ABC der WCF-Endpunkte
- Programmierung eines WCF-Dienstes
- Der WCF-Host
- Der WCF-Client
- Verbesserungen unter WCF 4.0
- How-to-Beispiele
-
20. Einführung WCF Data Services
- Einführung
- Praktisches Arbeiten mit den Data Services
- How-to-Beispiele
-
21. Komplexbeispiel Webshop
- Grundkonzept
- Die Datenbankstruktur
- Entwurf Webshop-Projekt/Datenbank
- Stammdatenverwaltung mit Webdienst
- Windows-Verwaltungsfrontend
- ASP.NET-Kundeninterface
- Abschlusstest und Bemerkungen
- A. Glossar
- B. Wichtige Datei-Extensions
- C. Northwind versus Nordwind
- Stichwortverzeichnis
- Impressum
Product information
- Title: Datenbank-Programmierung mit Visual C# 2010
- Author(s):
- Release date: July 2013
- Publisher(s): Microsoft Press Deutschland
- ISBN: 9783866454460
You might also like
book
Datenbank-Programmierung mit Visual C# 2012
Dieses Buch erläutert die Datenbankprogrammierung mit Visual C# 2012 für Einsteiger und Fortgeschrittene.
book
Windows® 98 Unleashed
Windows 98 Unleashed provides you with comprehensive coverage of the newest Windows features. This complete reference …
audiobook
Optimiere Deine Meeting-Produktivität
Willkommen zu unserem Learning Podcast von Assemble You Obwohl Teamwork und Zusammenarbeit wesentliche Aspekte der geschäftlichen …
book
Kryptografie in der Praxis
Die Kryptografie ist die wesentliche Grundlage der IT-Sicherheit. Um den Angreifern auf Ihre Systeme einen Schritt …