O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Datenbank-Programmierung mit Visual Basic 2012

Book Description

Dieses Buch erläutert die Datenbankprogrammierung mit Visual Basic 2012 für Einsteiger und Fortgeschrittene.

Table of Contents

  1. Datenbankprogrammierung mit Visual Basic 2012
  2. A Note Regarding Supplemental Files
  3.  
  4. Vorwort
    1. Ein Buch für Einsteiger und Fortgeschrittene
    2. Nützlich auch für den Visual C#-Programmierer
    3. Begleitdateien
    4. Zu den Autoren
    5. Danksagungen
  5. Vorwort
  6. 1. Erste Schritte
    1. Unsere Werkstatt
      1. Betriebssystem
      2. Visual Studio 2012
        1. Visual Studio 2012 Express
        2. Visual Studio 2012 Professional
        3. Visual Studio 2012 Premium
        4. Visual Studio 2012 Ultimate
      3. Anforderungen an Hard- und Software
      4. SQL Server oder LocalDB
        1. Northwind-Datenbank
      5. Microsoft Access
    2. Visual Basic und die Datenbankprogrammierung
      1. Zur Geschichte des universellen Datenzugriffs
      2. Merkmale webbasierter Anwendungen
        1. Allgemeine Architektur
        2. Grundprinzip ist die Trennung von Datenbank und Datenhaltung
        3. Kein Platz mehr für das Recordset-Objekt
        4. Das DataSet als Mini-Datenbank
        5. Ohne XML geht gar nichts mehr
        6. LINQ to XML
        7. SQL
        8. ASP.NET
        9. OOP
        10. Entity Framework
      3. Ein Wort zum .NET-Sicherheitskonzept
        1. Wie es früher einmal war
        2. Sicherheitsmechanismen
    3. Was ist neu in .NET 4.5/Visual Studio 2012?
      1. ADO.NET und SQL-Server
        1. Asynchrone Methoden
        2. SQL-Server
        3. Sicherheit
        4. Entity Framework
      2. Die neue Visual Studio 2012 Entwicklungsumgebung
        1. Neues Outfit der Symbolleiste
        2. Veränderter Projektmappen-Explorer
        3. Registerkartenverwaltung der geöffneten Dateien
        4. Suchen überall
        5. Neuer Verweis Manager-Dialog
        6. Projekt-Kompatibilität
        7. Neue Projekttypen
        8. Zusätzliche Tools und Features
      3. Neuheiten im .NET Framework 4.5
        1. WinRT-Anwendungen
        2. Portable Klassenbibliotheken
        3. Parallele Computervorgänge
        4. Internet
        5. WPF
        6. WCF
      4. VB 2012 – Sprache und Compiler
        1. Asynchrone Methoden
        2. Caller Information
        3. Iteratoren
    4. Ein wenig Datenbanktheorie
      1. Normalisieren von Tabellen
        1. Ausgangstabelle
        2. Erste Normalform
        3. Zweite Normalform
        4. Dritte Normalform
        5. Normalisierung nach dem Prinzip »Faule Sekretärin«
      2. Verknüpfen von Tabellen
        1. 1:1-Beziehung
        2. 1:n-Beziehung
        3. n:m-Beziehung
        4. Beziehungsdiagramm der FIRMA-Datenbank
        5. Referenzielle Integrität
        6. Datenbank-Prototyp verwenden
      3. Weitere wichtige Begriffe
        1. Sekundärindex
        2. NULL-Werte
    5. Einführungsbeispiele
      1. 1.1 ... auf eine lokale Access-Datenbank zugreifen?
        1. Datenquelle einrichten
        2. Die fertige Datenquelle
        3. Benutzerschnittstelle
        4. Programm testen
        5. Quellcode
        6. Bemerkungen
      2. 1.2 ... mit dem SQL Server arbeiten?
        1. Datenquelle einrichten
        2. Programm testen
      3. 1.3 ... eine einfache LINQ to SQL-Anwendung schreiben?
        1. Oberfläche
        2. Quellcode
        3. Programm testen
      4. 1.4 ... eine einfache ASP.NET-Webanwendung entwickeln?
        1. Erstellen der ASP.NET-Website
        2. Datenbank hinzufügen
        3. GridView hinzufügen
        4. GridView an Datenquelle anbinden
        5. Test
        6. Bemerkungen
      5. 1.5 ... meine erste WPF-Anwendung erstellen?
        1. Oberfläche
        2. Quellcode (.xaml)
        3. Quellcode (.vb)
        4. Test
      6. 1.6 ... einen einfachen WCF-Dienst entwickeln?
        1. Webdienst
        2. Webclient
        3. Test
        4. Bemerkungen
    6. Die Qual der Wahl
      1. DataReader – der schnelle Lesezugriff
      2. DataSet – die Datenbank im Hauptspeicher
        1. Typisiertes versus untypisiertes DataSet
      3. Objektrelationales Mapping – die Zukunft?
        1. LINQ to SQL/LINQ to Entities
      4. Die Exoten
  7. 2. Einführung in LINQ
    1. Die LINQ-Philosophie
      1. OOP-Modell versus relationales Modell
      2. Besonderheiten beim ORM
      3. Ein erstes LINQ-Beispiel
        1. Klassischer Datenbankzugriff
        2. Datenbankzugriff unter LINQ
      4. Der Weg zu LINQ
        1. Wie war es in der Zeit vor LINQ?
        2. Wichtige LINQ-Features
        3. Die LINQ-Architektur
        4. LINQ-Implementationen
    2. Die neuen Sprachfeatures
      1. Typinferenz
      2. Nullable-Typen
        1. Was sind Nullable Types?
      3. Objekt-Initialisierer
      4. Anonyme Typen
      5. Erweiterungsmethoden
      6. Lambda-Ausdrücke
    3. Abfragen mit LINQ to Objects
      1. Grundlegende Syntax
        1. Zwei alternative Schreibweisen von LINQ Abfragen
      2. Übersicht der wichtigsten Abfrageoperatoren
        1. Beispiele zu LINQ to Objects
      3. Die Projektionsoperatoren Select und SelectMany
        1. Select
        2. SelectMany
      4. Der Restriktionsoperator Where
      5. Die Sortierungsoperatoren OrderBy und ThenBy
        1. OrderBy/OrderByDescending
        2. ThenBy/ThenByDescending
        3. Reverse
      6. Der Gruppierungsoperator GroupBy
      7. Verknüpfen mit Join
      8. Aggregatoperatoren
        1. Count
        2. Sum
      9. Verzögertes Ausführen von LINQ-Abfragen
      10. Konvertierungsmethoden
      11. Der Zuweisungsoperator Let
      12. Abfragen mit PLINQ
        1. Probleme mit der Sortierfolge
    4. How-to-Beispiele
      1. 2.1 ... LINQ-Abfragen verstehen?
        1. Oberfläche
        2. Quellcode
        3. Test
      2. 2.2 ... nichtgenerische Collections abfragen?
        1. Oberfläche
        2. ArrayList erzeugen
        3. Variante 1 (mit Cast-Operator)
        4. Variante 2 (mit Typisierung)
        5. Variante 3 (mit OfType)
        6. Test
      3. 2.3 ... Datenbankabfragen mit LINQ und ADO.NET vergleichen?
        1. Oberfläche
        2. Klassischer Datenbankzugriff
        3. Datenbankzugriff mit LINQ to SQL
        4. Test
        5. Bemerkungen
  8. 3. ADO.NET-Grundlagen
    1. Die wichtigsten Klassen in ADO.NET
      1. Klassenhierarchie
      2. Die Klassen der Datenprovider
        1. .NET-Datenprovider
        2. Weitere Datenprovider
        3. Anzeige der installierten Datenprovider
        4. Herstellerspezifische Datenprovider
      3. Klassen im DataSet
      4. Das Zusammenspiel der ADO.NET-Klassen
    2. Das Connection-Objekt
      1. Allgemeiner Aufbau
      2. OleDbConnection
        1. Parameter für OleDb-Zugriff
        2. OleDb-Provider für Access Datenbank (.mdb)
        3. OleDb-Provider für Access 2007/2010 (.accdb)
      3. SqlConnection
        1. Parameter für SQL Server-Zugriff
        2. Verbindung mit einer SQL Server Datenbankdatei
      4. Fehlerbehandlung beim Öffnen einer Verbindung
      5. Schließen einer Verbindung
      6. Verbindungspooling
      7. Transaktionen
      8. Eigenschaften des Connection-Objekts
        1. ConnectionString-Eigenschaft
        2. Database- und DataSource-Eigenschaft
        3. Provider-Eigenschaft
        4. ServerVersion-Eigenschaft
        5. ConnectionTimeout-Eigenschaft
        6. State-Eigenschaft
      9. Methoden des Connection-Objekts
        1. Open- und Close-Methode
        2. ChangeDatabase-Methode
        3. CreateCommand-Methode
        4. BeginTransaction-Methode
      10. Ereignisse des Connection-Objekts
        1. InfoMessage-Ereignis
        2. StateChange-Ereignis
      11. Der ConnectionStringBuilder
      12. ConnectionString in den Anwendungseinstellungen speichern
    3. Das Command-Objekt
      1. Erzeugen und Anwenden eines Command-Objekts
      2. Erzeugen mittels CreateCommand-Methode
      3. Eigenschaften des Command-Objekts
        1. Connection- und CommandText-Eigenschaft
        2. CommandTimeout-Eigenschaft
        3. CommandType-Eigenschaft
        4. UpdatedRowSource-Eigenschaft
      4. Methoden des Command-Objekts
        1. ExecuteNonQuery-Methode
        2. ExecuteReader-Methode
        3. ExecuteScalar-Methode
      5. Freigabe von Connection- und Command-Objekten
    4. Parameter-Objekte
      1. Erzeugen und Anwenden eines Parameter-Objekts
      2. Eigenschaften des Parameter-Objekts
        1. ParameterName- und Value-Eigenschaft
        2. DbType, OleDbType und SqlDbType-Eigenschaft
        3. Direction-Eigenschaft
        4. Weitere Eigenschaften
    5. Das CommandBuilder-Objekt
      1. Erzeugen
      2. Anwenden
      3. Einsatzbeschränkungen
      4. Einige Regeln
      5. Optimistisches Konkurrenzmodell
    6. Das DataReader-Objekt
      1. DataReader erzeugen
      2. Daten lesen
      3. Eigenschaften des DataReaders
        1. Item-Eigenschaft
        2. FieldCount-Eigenschaft
        3. IsClosed-Eigenschaft
      4. Methoden des DataReaders
        1. Read-Methode
        2. GetValue- und GetValues-Methode
        3. GetOrdinal- und ähnliche Methoden
    7. Das DataAdapter-Objekt
      1. DataAdapter erzeugen
        1. Konstruktor mit SELECT-String und Connection-Objekt
        2. Konstruktor mit SelectCommand-Objekt
      2. Command-Eigenschaften
      3. Fill-Methode
        1. Begrenzung der Datenmenge
      4. Update-Methode
        1. Bemerkungen
      5. UpdateCommand und Parameter-Objekte
        1. SourceVersion- und SourceColumn-Eigenschaft
      6. InsertCommand und DeleteCommand
        1. Vorgehensweise
        2. Parameter definieren
        3. Datensätze hinzufügen
        4. Datensätze löschen
      7. MissingSchemaAction-Eigenschaft
      8. RowUpdating- und RowUpdated-Ereignis
        1. Der Parameter RowUpdatingEventArgs
        2. Die Status-Eigenschaft
    8. Zugriff auf Excel-Arbeitsmappen
      1. Zugriffsmöglichkeiten
      2. OLE DB-Connectionstring
      3. Zugriff auf Excel 2007/2010-Arbeitsmappen
      4. Neue Mappen erstellen
      5. Daten in ein Tabellenblatt eintragen
      6. Daten aktualisieren
      7. Daten auslesen
      8. Zugriff auf Tabellenbereiche
      9. OLE-Automation
    9. Weitere Features des Datenzugriffs
      1. Auslesen von Datenbankschemas
      2. Providerfabriken
      3. Task-orientierte asynchrone Programmierung
    10. How-to-Beispiele
      1. 3.1 ... wichtige ADO.NET-Objekte schnell kennen lernen?
        1. Oberfläche
        2. Quellcode (OleDb)
        3. Test
        4. Bemerkungen
      2. 3.2 ... eine Aktionsabfrage ausführen?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      3. 3.3 ... Daten direkt zur Datenbank hinzufügen oder löschen?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      4. 3.4 ... eine Access-Auswahlabfrage ausführen?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      5. 3.5 ... parametrierte Abfragen ausführen?
        1. Oberfläche
        2. Quellcode 1 (Nordwind.mdb)
        3. Erster Test
        4. Quellcode 2 (Northwind.accdb)
        5. Quellcode 3 (Northwind.mdf)
        6. Test
      6. 3.6 ... die Datenbank aktualisieren?
        1. Oberfläche
        2. Quellcode (Command-Objekte selbst programmiert)
        3. Test
        4. Quellcode (mit CommandBuilder)
        5. Test
        6. Bemerkungen
      7. 3.7 ... RowUpdating-/RowUpdated-Ereignisse verstehen?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      8. 3.8 ... Schemainformationen von der Datenbank abrufen?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      9. 3.9 ... einen Connectionstring verschlüsseln?
        1. Oberfläche
        2. Quelltext
        3. Ärger mit den Zugriffsrechten
        4. Test
      10. 3.10 ... die neuen asynchronen Methoden nutzen?
        1. Oberfläche
        2. Quellcode (klassischer synchroner Zugriff)
        3. Quellcode (asynchroner Zugriff)
        4. Test
        5. Bemerkung
      11. 3.11 ... eine klassische Datenzugriffsschicht entwickeln?
        1. Vorbereitungen
        2. Selektieren aller Kunden
        3. Kunde hinzufügen
        4. Kunde löschen
        5. Kunden aktualisieren
        6. TestClient
        7. Bemerkungen
    11. Übersichten
      1. Datentypen
      2. Connection-Objekt
      3. Command-Objekt
      4. Parameter-Objekt
      5. DataReader-Objekt
      6. DataAdapter
      7. CommandBuilder
  9. 4. Das DataSet-Objekt im Detail
    1. Einführung
      1. Das Objektmodell
        1. Objekthierarchie
        2. Die wichtigsten Klassen
      2. Methoden zum Erzeugen eines DataSets
        1. Copy-Methode
        2. Clone-Methode
        3. GetChanges-/HasChanges-Methode
      3. Weitere wichtige Methoden des DataSets
        1. RejectChanges-/AcceptChanges-Methode
        2. Merge-Methode
      4. Die XML-Fähigkeiten des DataSets
        1. XML-Datei erzeugen
        2. Inhalt der XML-Datei
    2. Das DataTable-Objekt
      1. DataTable erzeugen
        1. Unabhängige DataTable
        2. Kopieren
      2. Spalten hinzufügen
      3. Berechnete Spalten
      4. Primärschlüssel ergänzen
        1. Bemerkungen
      5. Einbinden von Constraints
        1. ForeignKeyConstraint
        2. AcceptRejectRule-Eigenschaft
        3. UniqueConstraint
      6. Hinzufügen von Relationen
        1. Erstellen einer DataRelation
        2. GetChildRows-Methode
        3. CreateConstraints-Flag
      7. Zeilen zur DataTable hinzufügen
        1. NewRow-Methode
        2. ImportRow-Methode
      8. Auf den Inhalt einer DataTable zugreifen
        1. Columns- und Rows-Eigenschaften
        2. TableName- und ColumnName-Eigenschaften
        3. Find-Methode
        4. Übergabe eines DataColumn-Objekts
        5. Select-Methode
      9. Weitere Hinweise zum Bearbeiten von Zeilen
      10. Zeilen löschen
        1. Delete oder Remove?
      11. Zeilenstatus und Zeilenversion
        1. RowState-Eigenschaft
        2. AcceptChanges- und RejectChanges-Methode
        3. DataRowVersion-Enumeration und HasVersion-Methode
      12. Ereignisse des DataTable-Objekts
        1. Übersicht
        2. ColumnChanging- und ColumnChanged-Ereignis
        3. RowChanging- und RowChanged-Ereignis
        4. Eigenschaften der Änderungsereignisse
    3. Datenansichten mit DataView
      1. Erzeugen eines DataView
        1. CreateDataView-Methode des DefaultViewManager
      2. Sortieren und Filtern von Datensätzen
      3. Suchen von Datensätzen
      4. Zeilenansicht mit DataRowView
        1. Zugriff
        2. Neu erzeugen
    4. Weitere DataSet-Features
      1. Umwandlungen zwischen DataSet und DataReader
        1. DataTableReader
        2. Load-Methode
        3. LoadOption-Enumeration
      2. Binäre Serialisierung für DataSet/DataTable
        1. RemotingFormat-Eigenschaft
        2. Binäre- kontra XML-Serialisierung
      3. Die DataTable kann mehr XML
      4. Schnelles Laden von DataSets
    5. Typisierte DataSets
      1. Was ist ein typisiertes DataSet?
        1. Welche Vorteile bietet ein typisiertes DataSet?
        2. Wie erzeuge ich ein typisiertes DataSet?
      2. Das Datenquellen-Konzept
      3. Typisierte DataSets und TableAdapter
        1. Warum sollte man ein typisiertes DataSet einsetzen?
        2. Der TableAdapter
    6. LINQ to DataSet
      1. Untypisierte DataSets abfragen
        1. Probleme mit NULL-Werten
      2. Typisierte DataSets abfragen
      3. Abhängigkeiten zwischen den Tabellen auflösen
    7. How-to-Beispiele
      1. 4.1 ... eine DataTable erzeugen und in einer Binärdatei speichern?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      2. 4.2 ... eine DataTable in einer XML-Datei abspeichern?
        1. Oberfläche
        2. Quellcode
        3. Test
      3. 4.3 ... Master-Detailbeziehungen im DataGrid anzeigen?
        1. Oberfläche
        2. Quellcode
        3. Test
      4. 4.4 ... in einem DataView sortieren und filtern?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      5. 4.5 ... nach Datensätzen suchen?
        1. Oberfläche
        2. Quellcode
        3. Test
      6. 4.6 ... vereinfacht nach Datensätzen suchen?
        1. Oberfläche
        2. Quellcode
        3. Test
      7. 4.7 ... zwischen DataTable und DataReader umwandeln?
        1. Oberfläche
        2. Quellcode (Allgemein)
        3. Quellcode (DataTable => DataReader)
        4. Quellcode (DataReader => DataTable)
        5. Test
      8. 4.8 ... große Datenmengen in ein DataSet laden?
        1. Oberfläche
        2. Quellcode
        3. Test
      9. 4.9 ... ein DataSet binär serialisieren?
        1. Oberfläche
        2. Quellcode
        3. Test
      10. 4.10 ... ein DataSet in einen XML-String konvertieren?
        1. Konvertierungsmethoden
        2. Testoberfläche Form1
        3. Erzeugen eines untypisierten DataSets als Testobjekt
        4. Test
      11. 4.11 ... ein untypisiertes in ein typisiertes DataSet laden?
        1. Konvertierungscode
        2. Normales DataSet erzeugen
        3. Typisiertes DataSet
        4. Testoberfläche
        5. Test
      12. 4.12 ... ein typisiertes DataSet mit LINQ abfragen?
        1. Oberfläche
        2. Typisiertes DataSet
        3. Quellcode
        4. Test
        5. Bemerkungen
      13. 4.13 ... mit LINQ to DataSet die Datenbank aktualisieren?
        1. Bedienoberfläche
        2. Typisiertes DataSet erstellen und anbinden
        3. Quellcode
        4. Test
        5. Bemerkungen
    8. Übersichten
      1. DataSet
      2. DataTable
      3. DataColumn
      4. DataRow
      5. DataView
  10. 5. Windows Forms-Datenbindung
    1. Einführung
      1. Manuelle Datenbindung an einfache Datenfelder
        1. BindingSource erzeugen
        2. Binding-Objekt
        3. DataBindings-Collection
        4. Bindungen löschen
        5. Bemerkungen
      2. Manuelle Datenbindung an Listen und Tabelleninhalte
        1. DataGridView
        2. Datenbindung von ComboBox und ListBox
      3. Entwurfszeit-Datenbindung an ein typisiertes DataSet
    2. Drag & Drop-Datenbindung
    3. Navigieren im DataSet
      1. Vor- und Rückwärtsblättern
      2. Hinzufügen und Löschen
      3. Aktualisieren und Abbrechen
      4. BindingNavigator
    4. Die Anzeige formatieren
    5. Das DataGridView
      1. Vom DataGrid zum DataGridView
      2. Grundlegende Datenbindung
      3. Standardmäßige Anzeige und Bedienung
      4. Wichtige Spalteneinstellungen
        1. AllowUserToOrderColumns
        2. Frozen
        3. HeaderText
        4. DisplayIndex
        5. Resizable und MinimumWidth
        6. Visible
      5. Automatische Größenanpassungen
        1. AutoSizeColumnsMode-Eigenschaft/AutoResizeColumns-Methode
        2. AutoSizeMode-Eigenschaft/AutoResizeColumn-Methode
        3. AutoSizeRowsMode-Eigenschaft/AutoResizeRows-Methode
        4. AutoResizeRow-Methode
      6. Selektieren von Zellen
        1. SelectedCells-, SelectedRows- und SelectedColumns-Eigenschaften
        2. CurentCell- und CurrentCellAddress-Eigenschaften
      7. Columns- und Rows-Auflistungen
      8. DataGridViewCellStyle-Objekte
        1. Datenformatierung
        2. Outfit
        3. Benutzerdefinierte Zellenformatierung
      9. Spaltentypen
        1. DataGridViewButtonColumn
        2. DataGridViewComboBoxColumn
        3. DataGridViewCheckBoxColumn
        4. DataGridViewImageColumn
      10. Editieren im DataGridView
      11. Fehlerbehandlung
      12. Eingabeprüfung
    6. How-to-Beispiele
      1. 5.1 ... eine Objekt-Datenquelle verwenden?
        1. Quellcode (Geschäftsobjekte)
        2. Datenquelle hinzufügen
        3. Quellcode (Form1)
        4. Test
        5. Bemerkungen
      2. 5.2 ... Steuerelemente an einen Objektbaum binden?
        1. Klassendiagramm
        2. Klasse CBestellung
        3. Klasse CPerson
        4. Klasse CKunde
        5. Klasse CFirma
        6. Klasse CPersistent
        7. Form1
        8. Test
        9. Anbinden an ein DataGridView
      3. 5.3 ... Detailinformationen mit ListBox/ComboBox anzeigen?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      4. 5.4 ... Steuerelemente manuell an ein DataSet binden?
        1. Benutzerschnittstelle
        2. Quellcode
        3. Test
        4. Bemerkungen
        5. Variante mit BindingNavigator
      5. 5.5 ... zwei Formulare an eine Datenquelle binden?
        1. Oberfläche
        2. Quellcode Form1
        3. Quellcode Form2
        4. Test
        5. Bemerkungen
      6. 5.6 ... mittels ComboBox zwei Tabellen verknüpfen?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      7. 5.7 ... ein typisiertes DataSet manuell binden?
        1. Oberfläche
        2. Datenquelle erstellen
        3. Steuerelemente manuell anbinden
        4. ComboBox anbinden
        5. Test 1
        6. Test 2
        7. Bemerkung
      8. 5.8 ... 1:n-Beziehungen per Drag & Drop-Datenbindung anzeigen?
        1. Oberfläche
        2. Datenquelle erstellen
        3. Personal-Eingabemaske per Drag & Drop erzeugen
        4. Datengitter für die Detailtabelle per Drag & Drop erzeugen
        5. Test
        6. Quellcode Form1
      9. 5.9 ... die Spalten im DataGridView formatieren?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      10. 5.10 ... mit DataReader und ListView arbeiten?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      11. 5.11 ... Bilder aus der Datenbank anzeigen?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      12. 5.12 ... das DataGridView als Datenbank-Frontend verwenden?
        1. Vorbereitungen
        2. Bedienoberfläche
        3. Statische Klasse CData
        4. Quellcode Form1 (Teil 1)
        5. Formatieren des DataGridView
        6. Quellcode Form1 (Teil 2)
        7. Test
        8. Bemerkungen
      13. 5.13 ... Datenbindung mit LINQ to SQL realisieren?
        1. Datenkontext
        2. Oberfläche
        3. Quellcode
        4. Test
        5. Bemerkungen
      14. 5.14 ... den DataRepeater für die Anzeige verwenden?
        1. Oberfläche
        2. Quelltext
        3. Test
        4. Bemerkungen
  11. 6. Datenbindung – WPF
    1. Grundprinzip
      1. Bindungsarten
      2. Wann wird eigentlich die Quelle aktualisiert?
      3. Geht es auch etwas langsamer?
      4. Bindung zur Laufzeit realisieren
    2. Binden an Laufzeit-Objekte
      1. Objekte im Code instanziieren
      2. DataContext – die universelle Alternative zur Source
      3. Verwenden der Instanz im VB-Quellcode
      4. Aktive Datenbindung – Anforderungen an die Quell-Klasse
      5. Instanziieren von Objekten per VB-Code
    3. Datenbindung von Collections
      1. Anforderung an die Collection
      2. Einfache Anzeige
      3. Navigation zwischen den Objekten
      4. Einfache Anzeige in einer ListBox
        1. Verwendung von DisplayMemberPath
      5. DataTemplates zur Anzeigeformatierung
      6. Mehr zu List- und ComboBox
        1. SelectedIndex
        2. Selectedltem/Selectedltems
        3. SelectedValuePath und SelectedValue
      7. Verwendung der ListView
        1. Einfache Bindung
        2. Sortieren der Einträge
      8. Probleme mit der Datenübernahme
    4. Ein Blick hinter die Kulissen
      1. Navigieren in den Daten
      2. Sortieren
      3. Filtern
      4. Gruppieren
      5. Live Shaping
    5. Die Anzeige von Datenbankinhalten
      1. DataSet
      2. LINQ to SQL
        1. Mapperklassen erzeugen
        2. Die Programm-Oberfläche
        3. Der Zugriff auf die Daten
        4. Optimieren des Datenzugriffs
      3. Entity Framework
        1. EDM erstellen
        2. Oberfläche
        3. Quellcode
        4. Optimierung
        5. Neue Daten einfügen
    6. Formatieren von Werten
      1. IValueConverter
      2. BindingBase.StringFormat-Eigenschaft
    7. Validieren von Nutzereingaben
      1. Validieren per Daten – oder Geschäftsobjekt
      2. Den Fehler optisch darstellen
      3. Wann wird eigentlich validiert?
      4. ValidationRule – die Alternative
      5. Validierungsfehler per Ereignis auswerten
      6. IDataErrorInfo
        1. Änderung am Objekt
    8. Das DataGrid als Universalwerkzeug
      1. Grundlagen der Anzeige
      2. Spalten selbst definieren
        1. Zusatzinformationen in den Zeilen anzeigen
      3. Vom Betrachten zum Editieren
      4. UI-Virtualisierung
    9. How-to-Beispiele
      1. 6.1 ... Drag & Drop-Bindung für Master/Detail-Beziehungen umsetzen?
        1. Oberfläche
        2. Quellcode (XAML)
        3. Quellcode (VB)
        4. Test
      2. 6.2 ... Collections in Hintergrundthreads füllen?
        1. Oberfläche
        2. Das Problem
        3. Lösung (bis .NET 4.0)
        4. Test
        5. Lösung (ab .NET 4.5)
        6. Test
      3. 6.3 ... das MVVM-Pattern am einfachen Beispiel verstehen?
        1. CBuch – unser Model
        2. CBuchViewModel – unser ViewModel
        3. MainWindow – unsere View
        4. Test
        5. Bemerkungen
      4. 6.4 ... mit Commands den MVVM-Code optimieren?
        1. CCommand
        2. CBuchViewModel
        3. MainWindow.xaml
        4. Test
        5. Bemerkungen
      5. 6.5 ... mit MVVM und Collections arbeiten?
        1. CBuchDB
        2. CBuecherViewModel
        3. MainWindow.xaml
        4. Test
        5. Bemerkungen
    10. Tipps & Tricks
      1. Datenbindung von Null-Values
      2. Fallback-Values zuweisen
      3. Asynchrone Datenbindung von Einzelwerten
      4. Datenbindung an statische Werte
      5. Datenbindung an Settings
  12. 7. Microsoft SQL Server-Einstieg
    1. Übersicht
      1. SQL Server LocalDB
        1. Umstellung
        2. Download und Installation
      2. SQL Server Express
      3. SQL Server Compact
      4. Unterschiede SQL Server/SQL Server Express/LocalDB/Jet-Engine
        1. Vergleich Express Edition und Standard SQL Server
        2. Unterschiede Express und LocalDB
        3. Vergleich zur Jet-Engine
      5. Client- versus Fileserver-Programmierung
      6. Die wichtigsten Tools von SQL Server
        1. SQL Server Management Studio
        2. SQLCMD
        3. Query Analyzer (SQL Server Management Studio)
        4. SQL Server Profiler
        5. SQL Server Konfigurationsmanager
      7. Vordefinierte Datenbanken
      8. Einschränkungen
      9. Weitere SQL Server-Funktionen im Kurzüberblick
        1. SQL Server-Agent
        2. Volltextsuche
        3. Reporting Services
        4. Integration Services
        5. Analysis Services
      10. Zugriff aus Visual Basic
      11. Einrichten der Anbindung (Assistent)
      12. Einrichten der Verbindung (Quellcode)
    2. Datenbanken mit DMO verwalten
    3. SQL Server Management Objects (SMO)
      1. Einbindung
      2. Einführungsbeispiel
      3. Anmelden am Server
    4. Datensicherheit auf dem Microsoft SQL Server
      1. Überblick Sicherheitsmodell
        1. Rollen (Gruppen)
        2. Rechte
      2. Verwalten mit dem SQL Server Management Studio
        1. Erstellen einer neuen Anmeldung
        2. Erstellen von Rollen
        3. Verwalten von Rechten
      3. Verwalten mit T-SQL
        1. Überblick
        2. Erstellen eines neuen Users
        3. Löschen eines Benutzers
        4. Erstellen einer neuen Rolle
        5. Hinzufügen von Usern zu einer Rolle
        6. Verwaltung von Rechten
    5. How-to-Beispiele
      1. 7.1 ... den Netzwerkzugriff für den SQL Server Express aktivieren?
        1. SQL Server Browser aktivieren
        2. TCP/IP-Protokoll aktivieren
        3. Erlaubnis für Remotezugriff überprüfen
        4. Gemischte Anmeldung aktivieren
      2. 7.2 ... die SQL Server Express-Version erkennen?
      3. 7.3 ... die SQL Server Express-Version administrieren?
      4. 7.4 ... alle Nutzer einer Datenbank ermitteln?
      5. 7.5 ... alle registrierten Microsoft SQL Server ermitteln?
      6. 7.6 ... alle Datenbanken und deren Tabellen ermitteln?
      7. 7.7 ... eine Tabelle löschen?
      8. 7.8 ... eine Tabelle mit den SMO erzeugen?
      9. 7.9 ... die Anzahl der Datensätze beschränken?
        1. Variante 1 (TOP)
        2. Variante 2 (SET ROWCOUNT)
        3. Variante 3 (ROW_NUMBER)
      10. 7.10 ... Platzhalterzeichen in T-SQL verwenden?
      11. 7.11 ... Teilstrings erzeugen?
      12. 7.12 ... Leerzeichen entfernen?
      13. 7.13 ... mit DROP INDEX jeden Index löschen?
      14. 7.14 ... @@ERROR korrekt verarbeiten?
      15. 7.15 ... die Anzahl der Datensätze einer Abfrage bestimmen?
      16. 7.16 ... mit Bedingungen Feldinhalte formatieren?
      17. 7.17 ... Abfragen mit Platzhaltern beschleunigen?
      18. 7.18 ... das Ergebnis einer Stored Procedure speichern?
      19. 7.19 ... eine Datenbank umbenennen?
      20. 7.20 ... eine Datenbank zwischen Servern verschieben?
      21. 7.21 ... eine Datenbankstruktur kopieren?
      22. 7.22 ... nach dem Löschen IDENTITY auf 0 setzen?
      23. 7.23 ... eine Tabellenspalte umbenennen?
      24. 7.24 ... Unterschiede zwischen temporären Tabellen erkennen?
      25. 7.25 ... Daten aus verschiedenen Datenbanken anzeigen?
      26. 7.26 ... die PRINT-Anweisung in VB anzeigen?
  13. 8. Microsoft SQL Server-Programmierung
    1. Praktisches Arbeiten mit dem SQL Server
      1. Erstellen von SQL Server-Datenbanken
        1. Verwenden von SMO
        2. Verwenden von T-SQL
        3. Ergänzungen
      2. Erzeugen und Verwalten von Tabellen
        1. Visual Studio
        2. Indizes
        3. Tabellen erzeugen/verwalten mit T-SQL
      3. Datentypen
        1. Temporäre Tabellen
        2. Tabellen mit SMO erzeugen
      4. Datenbankdiagramme
      5. Erzeugen und Verwenden von Sichten (Views)
        1. Verwenden von T-SQL
      6. Gespeicherte Prozeduren verwenden
        1. Verwenden von Parametern
        2. Resultsets als Rückgabewerte
        3. Output-Parameter
        4. Verwenden des Rückgabewertes
      7. Table Value Parameters (TVP)
      8. Programmierung/Verwendung von Triggern
        1. DDL-Trigger
        2. Trigger-Arten (DML-Trigger)
        3. Gezielte Datensatzauswertung
        4. Auswerten von Spaltenänderungen
      9. Volltextabfragen
        1. Allgemeine Voraussetzungen
        2. Erstellen mit T-SQL
        3. Abfragen von Daten
        4. Ergänzungen/Hinweise
      10. Die Verwendung von FileStream-Storage
        1. FileStream-Storage aktivieren
        2. CONTAINS FILEGROUP
        3. Tabellenlayout
        4. Und wie kommen die Daten in die Tabelle?
      11. FileTable
        1. Einrichten
        2. Zugriff auf das Basisverzeichnis realisieren
        3. Zugriff auf eine Datei/ein Unterverzeichnis realisieren
      12. Massenkopieren
      13. Datenbanken sichern und wiederherstellen
        1. Microsoft SQL Server Management Studio
        2. T-SQL
        3. Backup mit den SMO
        4. Restore mit den SMO
    2. Fehlerbehandlung
      1. Das Fehlermodell
      2. Verwenden von @@ERROR
      3. Verwenden von RAISEERROR
      4. Fehlerbehandlung mit TRY...CATCH
      5. Fehlerbehandlung mit ADO.NET
    3. Weitere Features des Datenzugriffs unter ADO.NET
      1. Alle verfügbaren SQL Server ermitteln
      2. Klassische asynchrone Befehlsausführung
      3. Benachrichtigungen über Datenänderungen
      4. Multiple Active Resultsets (MARS)
    4. CLR-Integration im SQL Server
      1. Grundsätzlicher Ablauf
      2. CLR-Unterstützung aktivieren
      3. Assembly erstellen
      4. Ein erstes Beispiel
      5. Benutzerdefinierte Funktionen (UDF)
      6. Stored Procedures
        1. Parameter/Rückgabewerte
        2. Die aktuelle Verbindung für den Datenzugriff nutzen
        3. Eigenes Resultset erzeugen
      7. Aggregat-Funktionen
      8. Trigger in VB realisieren
      9. Mehr Sicherheit
      10. Fazit
    5. XML-Unterstützung
      1. Der XML-Datentyp
      2. XML-Daten mit SELECT erzeugen
        1. ROOT erzeugen
        2. PATH
        3. ELEMENTS
        4. Hierarchische Daten abfragen
        5. Schema erzeugen
      3. XML-Abfragen
        1. Query
        2. Exist
        3. Value
      4. Der Clientzugriff auf die XML-Daten
    6. How-to-Beispiele
      1. 8.1 ... Aktualisierungs- und Löschweitergaben realisieren?
      2. 8.2 ... Änderungen in Tabellen protokollieren?
      3. 8.3 ... SQL-Anweisungen debuggen?
        1. Debugging im Visual Studio 2012
        2. SQL Server Profiler
      4. 8.4 ... ein SqlConnection-Objekt programmieren?
        1. Oberfläche
        2. Variante 1: Connectionstring hart kodieren
        3. Variante 2: Connectionstring in der Anwendungskonfigurationsdatei hinterlegen
        4. Variante 3: Eine Datenbankdatei (.mdf) verwenden
        5. Verbindung zum SQL Server herstellen
        6. Test
        7. Bemerkungen
      5. 8.5 ... eine Gespeicherte Prozedur aufrufen?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      6. 8.6 ... mit Table Value-Parametern arbeiten?
        1. Vorarbeiten auf dem SQL Server
        2. Oberfläche (Client)
        3. Quellcode
        4. Test
      7. 8.7 ... mit Stapel-Abfragen arbeiten?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      8. 8.8 ... Query Notifications einrichten und auswerten?
        1. Prinzip
        2. Oberfläche
        3. Quellcode
        4. Test
        5. Ärger mit dem SQL Server Service Broker
        6. Hilfsclient zum Datenbank-Update
      9. 8.9 ... die MARS-Technologie kennen lernen?
        1. Oberfläche
        2. Quellcode (ohne MARS)
        3. Quellcode (mit MARS)
        4. Quellcode (für Kontrollanzeige)
        5. Test
        6. Bemerkungen
      10. 8.10 ... Row-Constructors verwenden?
  14. 9. SQL Server Compact
    1. Einsatzszenarien
      1. Einschränkungen
      2. Die »tolle« neue Version 4.0
      3. Fähigkeiten/Vorteile
    2. Installation
      1. Books Online
      2. SQL Server Compact 3.5 SP2
      3. SQL Server Compact Toolbox
      4. Weitere Downloads
    3. Datenbanken erstellen, verwalten und einbinden
      1. Visual Studio
      2. SQL Server Management Studio
      3. Codebasiert mit VB
        1. Zusätzliche Parameter im Connectionstring
      4. Tabellen und Referenzen erstellen
    4. Zusammenarbeit mit dem DataSet
    5. Datenzugriff mit SqlCeResultSet
      1. Datenbindung
      2. Das ResultSet konfigurieren
      3. Datensätze löschen
      4. Datensätze einfügen
      5. Datensätze bearbeiten
      6. Navigation zwischen den Datensätzen
    6. Zugriff mit LINQ to SQL
      1. Anbinden einer vorhandenen Datenbank
      2. Erstellen einer neue Datenbank
      3. Ergänzungen
    7. Zugriff per Entity Data Model
    8. Der Einsatz als Local Database Cache
      1. Beispiel Einweg Synchronisation
        1. Starten des Synchronisierungsprozesses in einer Anwendung
      2. Bidirektionale Synchronisation
        1. Anzeige von Statusänderungen
    9. Tipps & Tricks
      1. Migration von Version 3.5 auf 4.0
      2. Datenbank auf Remotelaufwerk nutzen
      3. Performance verbessern
      4. Datenbank von schreibgeschütztem Medium starten
      5. Datenbankinformationen abrufen
      6. Datenbank reparieren
      7. Datenbank komprimieren
        1. Compact
        2. Shrink/AutoShrink
      8. Die Datenbank nachträglich verschlüsseln
      9. Ein Datenbank-Backup realisieren
      10. Fehler in der Visual Studio-IDE vermeiden
      11. Distribution
        1. Distribution SQL Server Compact 3.5
        2. Distribution SQL Server Compact 4.0
    10. Fazit
  15. 10. SQLite – Ein Mini ganz groß
    1. Was ist eigentlich SQLite?
      1. Vorteile
      2. Nachteile
    2. Vorbereitungen
      1. Download/Installation
      2. Integration in Ihr VB-Projekt
    3. Datenbank-Tools
      1. Verwalten von SQLite-Datenbanken mit Visual Studio
      2. Database .NET
      3. SQLite Administrator
    4. Praktische Aufgabenstellungen
      1. Datenbank/Datenbankobjekte per Code erstellen
      2. Mögliche Connectionstring-Parameter
      3. Tabellen erzeugen
        1. Bitte umlernen – Datentypen einmal anders
        2. Einschränkungen definieren
      4. Datenbankzugriff per DataSet realisieren
      5. Besonderheit: InMemory-Datenbank
      6. Datenzugriff mit dem Entity Framework
      7. Die Bedeutung von Transaktionen bei SQLite
      8. SOUNDEX verwenden
      9. Volltextabfragen realisieren
      10. Eigene skalare Funktionen in VB realisieren
      11. Eigene Aggregat-Funktionen in VB realisieren
    5. SQLite – die Datenbank für Windows Store Apps
      1. Installation in einem WinRT-Projekt
      2. Erstellen der Datenbank
      3. Daten einfügen, lesen und abfragen
    6. Tipps & Tricks
      1. Für Liebhaber der Kommandozeile – Sqlite3.exe
      2. Eine SQLite-Datenbank reparieren
      3. Eine Beispieldatenbank herunterladen
      4. Eine Datenbank ver- und entschlüsseln
      5. Eine verschlüsselte Datenbank öffnen
      6. Testen ob Tabelle vorhanden ist
      7. Die Datenbank defragmentieren
      8. Mehrere Datenbanken verknüpfen
      9. Testen, ob eine Tabelle vorhanden ist
      10. Eine Abfrage/Tabelle kopieren
      11. Backup/Restore implementieren
      12. Tabellen zwischen Datenbanken kopieren
      13. Ersatz für TOP
      14. Metadaten auswerten
      15. Timestamp als Defaultwert verwenden
      16. Export in XML-Format
    7. Fazit
  16. 11. Datenbanken in der Cloud
    1. Einführung in SQL Azure-Datenbanken
      1. Das Grundprinzip der »Webdatenbank«
      2. Der Azure-Server
        1. Einschränkungen
        2. Features
      3. Die Frage nach den Kosten
    2. Einrichten des Servers
      1. Die zentrale Organisationsstruktur
      2. Einen Server und eine Datenbank erstellen
      3. IP-Filter konfigurieren
      4. Bemerkungen zum neu erstellten Account
      5. Die drei konzeptionellen Zugriffsmodelle
        1. Code-Far-Modell
        2. Code-Near-Modell
        3. Misch-Variante
    3. Administrieren von Azure SQL-Datenbanken
      1. Zugriff mit dem SQL Server Management Studio
      2. Weitere Accounts erstellen
        1. Neuen Login-Account erzeugen
        2. Neuen Datenbank-Nutzer erzeugen
        3. Zuweisen von Rechten
      3. Lokalen Datenbanken mit dem Management Studio migrieren
      4. Visual Studio 2012 als Management-Tool
    4. Praktische Umsetzung in einer VB-Anwendung
      1. Verbindung aufbauen
      2. Datenbank erstellen
        1. Ist die Datenbank schon vorhanden?
      3. Den aktuellen »Füllstand« abrufen
      4. Was passiert, wenn die Datenbank zu klein wird?
      5. Eine Datenbankkopie erstellen
      6. Tabelle(n) erstellen
      7. Daten schreiben/lesen
        1. Asynchrone Ausführung
        2. Einfügen großer Datenmengen
        3. Lesen der Daten
      8. Stored Procedures
      9. Implementieren einer temporären Fehlerbehandlung
    5. Abschließende Hinweise
      1. Synchronisieren
      2. Performance-Tipps
      3. Die Firewall per T-SQL konfigurieren
      4. Arbeiten mit sqlcmd
      5. Migrieren von Access-Datenbanken
  17. 12. Arbeiten mit dem Entity Framework
    1. Das Grundkonzept
      1. Konzeptionelle Schicht
      2. Logische Schicht
      3. Zuordnungsschicht
      4. Wie erstelle ich die Schema-Dateien?
      5. Das Gesamtmodell im Überblick
      6. Wie kann mit dem EDM gearbeitet werden?
        1. EntityClient
        2. Objektdienste
    2. Die Entwurfsmöglichkeiten im Überblick
      1. Database-First
      2. Model-First
      3. Code-First
      4. Noch ein Wort zur Code-Erzeugung
    3. Überblick zu den Neuigkeiten für Umsteiger
      1. Entity Framework 5
      2. Entity Framework 6
    4. Der Database-First/Model-First-Entwurf
      1. Unsere Beispieldatenbank
        1. Das Datendiagramm
        2. Tabelle TestTabelle
        3. Tabelle Fahrzeuge
      2. Der EDM-Assistent
      3. Der EDM-Designer
        1. Zuordnungsdetails
        2. Eigenschaftenfenster
        3. Zuordnen von Stored Procedures
      4. Weitere Fenster des EDM-Designers
        1. Klassenansicht
        2. Modellbrowser
      5. Stored Procedures importieren
      6. Komplexe Typen
      7. Verwendung von Enums
      8. Die erzeugten Klassen/partielle Klassen
      9. Aktualisieren des Modells
      10. Besonderheit des Model-First-Entwurfs
    5. Code-First – Ein erster Einstieg
      1. Vom Code zur Datenbank – unser erster Versuch
      2. Wir machen es besser und nutzen Annotations
      3. Festlegen der Zieldatenbank
      4. Entity Framework Power Tools
    6. Einsatz des EntityClient für die Datenabfrage
      1. Ein Überblick
      2. Einsatzbeispiel
      3. Connection aufbauen
      4. Parameterabfragen realisieren
      5. Wann sollten Sie diese Variante nutzen?
    7. Verwenden der Objektdienste
      1. Eine Übersicht
      2. Verwendung von eSQL
      3. Verwendung von LINQ to Entities
    8. Kurzeinführung in Entity SQL (eSQL)
      1. Für den Umsteiger: Unterschiede zu T-SQL
      2. Für den Einsteiger
        1. Kommentare
        2. Zeichenketten
        3. Datum-/Zeitangaben
        4. Zahlen
        5. Parameter
        6. Projektion
        7. Sortieren
        8. Gruppieren
        9. Filtern
        10. Beschränken
        11. Paging
        12. UNION
        13. Verwendung von Aggregat-Funktionen
        14. Zugriff auf Detaildaten
    9. Praktisches Arbeiten mit dem EDM
      1. Skalare Werte abfragen
      2. Abfrage mit Projektion
      3. Detaildaten/Verwendung der Navigationseigenschaften
      4. Lazy Loading
      5. Wie funktioniert das explizite Laden?
      6. Was passiert beim vorzeitigen Laden (Eager-Load)?
      7. Delay Loaded
      8. Zugriff mit Paging
      9. Abrufen einzelner Entitäten
        1. Single/First
        2. SingleOrDefault/FirstOrDefault
        3. Find (GetObjectByKey)
      10. Lokale Datenaktualisierung per DbContext
      11. Einfaches Einfügen von Datensätzen
      12. Abrufen eines Identity-Wertes nach dem Einfügen
      13. Einfügen von Datensätzen in 1:n/m:n-Beziehungen
      14. Bearbeiten von Entitäten
      15. Übernahme der Daten mit SaveChanges
        1. Lösung per ObjectContext
        2. Lösung per DbContext
      16. Löschen von Daten
      17. Verwendung von Stored Procedures
        1. Komplexe Typen
        2. Skalare Rückgabewerte
        3. Table-Valued Functions (TVFs)
      18. Funktionsimporte
      19. Verwenden des ChangeTrackers
      20. Anhängen von Objekten
      21. Arbeiten mit Vererbung
        1. Arbeit mit dem Designer
        2. Verwendung der Vererbung
      22. Validierung
      23. Verwenden der partiellen Klassen
        1. DbContext erweitern
        2. Entitäts-Konstruktoren überladen
        3. Eigene Eigenschaften und Methoden realisieren
        4. Abschließender Hinweis
    10. How-to-Beispiele
      1. 12.1 ... den ConnectionString anpassen?
      2. 12.2 ... ChangeTracking deaktivieren?
      3. 12.3 ... Objekt per Schlüssel löschen, ohne diese zu laden?
      4. 12.4 ... LINQPad verwenden?
        1. Download/Installation
        2. Anbinden Ihres Objektmodells
        3. Beispiel eSQL
      5. 12.5 ... die Entity Framework Extended Library verwenden?
      6. 12.6 ... SQL-Anweisungen analysieren?
      7. 12.7 ... direkte SQL-Statements an den Server senden?
  18. 13. Reporting Services
    1. Übersicht
      1. Report Designer
      2. Report Viewer
        1. Eigenschaften
        2. Betriebsarten
      3. Wichtige Änderungen gegenüber der Vorgängerversion
    2. Einführungsbeispiele
      1. Der erste Bericht – so einfach geht das!
        1. Datenquelle erzeugen
        2. Report entwerfen
        3. Report mit ReportViewer verbinden
        4. Bemerkungen
      2. Ein zweiter Bericht – weg mit dem Assistenten!
        1. Vorbereitungen
        2. Bericht entwerfen
        3. ReportViewer anbinden
        4. Test
        5. Bemerkungen
    3. Unsere Werkzeuge für den Berichtsentwurf
      1. Oberfläche des Report-Designers
        1. Textkörper
        2. Kopfzeile und Fußzeile
      2. Werkzeugkasten
        1. Beschreibung
        2. Wichtige Hinweise zur Programmierung
      3. Bericht-Menü
        1. Berichtseigenschaften
        2. Kopf-/Fusszeile ein-/ausblenden
        3. Gruppierung
      4. Berichtsdaten-Fenster
        1. Integrierte Felder
        2. Berichtsparameter
        3. Eingebettete Bilder
        4. DataSets
      5. Programmieren mit Visual Basic
        1. Konstanten
        2. Integrierte Felder
        3. Parameter
        4. Felder und DataSets
        5. Variablen
        6. Operatoren
        7. Allgemeine Funktionen
    4. Sortieren, Gruppieren und Filtern von Datensätzen
      1. Vorbereitungen
      2. Sortieren
      3. Gruppieren
      4. Filtern
    5. Kreuztabellenberichte
      1. Einfache Matrix
      2. Zeilen- und Spaltensummen anzeigen
      3. Zusätzliche berechnete Spalten einfügen
      4. Matrix mit zwei Zeilengruppen
    6. Bilder im Bericht anzeigen
      1. Ein Bild einbetten
      2. Bilder aus einer Datenbank
      3. Externe Bilder
      4. Hintergrundbilder
    7. Diagramme darstellen
      1. Diagrammtypen
      2. Säulendiagramm
      3. Weitere Gruppen hinzufügen
      4. Weitere Diagramme
    8. Parameter anwenden
      1. Parameterdefinition
        1. Allgemein
        2. Verfügbare Werte
        3. Standardwerte
      2. Einbau von Parametern in den Berichtsentwurf
        1. Parameter direkt eintragen
        2. Parameter mit Ausdruck-Editor zuweisen
      3. Parameterwerte an Bericht übergeben
        1. Allgemeine Syntax
        2. Parameterübergabe
    9. Berichtsvariablen
    10. Master-Detail-Reports
      1. Subreports
      2. Eingebettete Datenregionen
    11. Noch mehr Reporting
      1. Hyperlink realisieren
      2. Verwenden von ReportViewer-Ereignissen
        1. Drillthrough-Event
        2. Hyperlink-Event
    12. Hinzufügen von benutzerdefiniertem Code
      1. Variante 1: Eingebetteter Visual Basic-Code
      2. Variante 2: Benutzerdefinierte Assembly
    13. Ergänzungen zum ReportViewer
      1. Local Mode versus Server Mode
      2. RDL- versus RDLC-Format
      3. Übersicht Datenbindung
        1. Anbindung DataSet
        2. Anbindung Objekte (LINQ to SQL, Entity Framework, Webdienste)
    14. How-to-Beispiele
      1. 13.1 ... einen Bericht mit dem Berichtsassistenten erstellen?
        1. Vorbereitung
        2. Reportentwurf mit Assistent
        3. Anzeige per ReportViewer
      2. 13.2 ... einen Unterbericht einsetzen?
        1. Datenquelle erstellen
        2. Unterbericht entwerfen
        3. Parameter und Filter zum Unterbericht hinzufügen
        4. Hauptbericht entwerfen
        5. ReportViewer anbinden
        6. Test
      3. 13.3 ... eine Rechnung anzeigen?
        1. Datenquelle erstellen
        2. Report entwerfen
        3. Test
        4. Bemerkungen
        5. Böse – ein Bug im Report Designer
      4. 13.4 ... das Drillthrough-Event behandeln?
        1. Detail-Report vorbereiten
        2. Master-Report vorbereiten
        3. ReportViewer mit Master-Report verbinden
        4. Drillthrough-Event auswerten
        5. Test
      5. 13.5 ... das Messgerät zur Anzeige nutzen?
        1. Vorbereitung
        2. Reportentwurf
        3. Anzeige
  19. 14. Das Microsoft Chart-Control
    1. Allgemeine Chart-Features
      1. Serien/Reihen und Datenpunkte direkt erzeugen
      2. Den Diagrammtyp ändern
      3. 3D-Darstellung
      4. Farben für Serien und Datenpunkte
        1. Farbpalette auswählen
        2. Benutzerdefinierte Paletten
        3. Color-Eigenschaft
      5. Leere Datenpunkte
      6. Diagramm drucken
      7. Diagramm exportieren/abspeichern
    2. Einführung in die Chart-Datenbindung
      1. Manuelle Datenbindung mittels Points.AddXY-Methode
      2. Übersicht über die speziellen Datenbindungsmethoden
      3. Unterstützte Datenquellen
    3. Spezielle Chart-Datenbindungsmethoden
      1. Die DataBindTable-Methode
      2. DataBind-Methode/DataSource-Eigenschaft
      3. Die DataBindCrossTable-Methode
      4. Die Points.DataBind-Methode
      5. Die Points.DataBind(X)Y-Methoden
        1. Points.DataBindXY
        2. Points.DataBindY
    4. How-to-Beispiele
      1. 14.1 ... das Chart-Control zur Laufzeit mit Daten füllen?
        1. Dataset entwerfen
        2. Oberfläche
        3. Quelltext
        4. Test
      2. 14.2 ... das Chart mit einer LINQ to SQL-Abfrage verbinden?
        1. Oberfläche
        2. Quelltext
        3. Test
      3. 14.3 ... mit ASP.NET und Entity Framework ein Diagramm anzeigen?
        1. Oberfläche
        2. Datenzugriff realisieren
        3. Quelltext
        4. Test
  20. 15. Access-Datenbanken
    1. Ein erster Blick auf Microsoft Access-Datenbanken
      1. Warum Access?
      2. Access-Datentypen
      3. Beschränkungen
    2. Der Zugriff aus Visual Basic
      1. Warum nicht nur ADO.NET?
      2. Die ADOX-Library
        1. Die wichtigsten Objekte auf einen Blick
      3. Die JRO-Library
      4. ADO MD
      5. Einbinden von ADOX und JRO in VB
      6. Parameter für ADO.NET-Connectionstrings
      7. Access-Datenbankpasswort
      8. Access-Datenbanksicherheit (Benutzer-/Gruppenebene)
      9. Datenbankzugriff auf schreibgeschützte Medien (CD, DVD)
    3. Datenbanken erstellen
      1. Die Create-Methode
      2. Weitere Parameter
      3. Jet-spezifische Optionen
    4. Tabellen/Indizes erstellen/verwalten
      1. Tabellendefinition
      2. Indexdefinition
      3. Erstellen von Prozeduren und Sichten
      4. Tabellen verknüpfen (Relationen)
    5. Zugriffsschutz in Access-Datenbanken
      1. Grundlagen
      2. Sichern auf Datenbankebene
      3. Erstellen neuer Benutzer und Gruppen
      4. Vergabe von Rechten
      5. Verschlüsseln von Datenbanken
    6. Einbinden externer Tabellen
      1. Erstellen einer Verbindung
      2. Aktualisieren einer Verbindung
      3. Löschen einer Verbindung
    7. Replizieren von Datenbanken
    8. Datenbankanalyse
      1. Verwendung von GetSchema
        1. Welche Informationen können abgerufen werden?
        2. Welche Einschränkungen können verwendet werden?
      2. Datenbankeigenschaften mit ADOX ermitteln
      3. Tabellen mit ADOX bestimmen
      4. Sichten/Abfragen mit ADOX bestimmen
        1. Parameterabfragen (Procedures)
      5. Nutzer und Nutzergruppen auslesen
      6. Nutzer- und Gruppenberechtigungen ermitteln
    9. Weitere Aufgabenstellungen
      1. Access-Datenbanken reparieren/komprimieren
      2. Distribution von Access-Datenbanken
    10. Access 2007-Datenbanken
      1. Zugriff auf die Datenbanken
      2. Neuer Connectionstring
      3. Übersicht neue Datentypen
      4. Arbeiten mit den DAOs
      5. Memofeld mit Archiv-Funktion
        1. Erzeugen per Access-Editor
        2. Erzeugen per DAO-Code
        3. Zugriff auf das History-Feld
      6. Anlage-Feld
        1. Erzeugen per DAO-Code
        2. Dateien im Anlage-Feld speichern
        3. Informationen über die Anlagen abrufen
        4. SQL und Anlagefelder
      7. Rich-Text-Feld
        1. Erzeugen per DAO-Code
      8. Multivalue-Feld (MVF)
        1. Erzeugen per Access-Editor
        2. Bemerkungen
    11. Access 2010-/2013-Datenbanken
      1. Download/Installation Access 2010 Database Engine
      2. Berechnete Spalten
        1. Tabelle erzeugen
        2. Tabelle in VB verwenden
      3. Trigger/Datenmakros
        1. Trigger erzeugen
        2. Tabelle in VB verwenden
      4. Unterschiede Access 2007/2010/2013
    12. How-to-Beispiele
      1. 15.1 ... ADO installieren?
      2. 15.2 ... Access-Datenbanken exklusiv öffnen?
      3. 15.3 ... die Zugriffsgeschwindigkeit auf Access-Datenbanken erhöhen?
      4. 15.4 ... Access-Datenbanken im Netzwerk verwenden?
      5. 15.5 ... alle aktiven Verbindungen zur Datenbank auflisten?
      6. 15.6 ... eine Spalte mit eindeutigen Zufallswerten erzeugen?
      7. 15.7 ... das Datenbank-Kennwort ändern?
        1. Datenbankpasswort
        2. Nutzerpasswort
      8. 15.8 ... Abfragen über mehrere Datenbanken realisieren?
      9. 15.9 ... die Beschreibung von Datenbankfeldern abrufen?
      10. 15.10 ... ohne Access auf Access-Datenbanken zugreifen?
  21. 16. Jet-SQL in Theorie und Praxis
    1. Einführung
      1. Kategorien von SQL-Anweisungen
        1. Datendefinition
        2. Datenabfrage
        3. Datenmanipulation
        4. Zugriffskontrolle
    2. Testprogramm und Beispieldatenbank
      1. Hinweise zur Bedienung
      2. Unsere Beispieldatenbank im Überblick
      3. Alternative Varianten für die SQL-Abfrage
        1. Microsoft Access
        2. ADO Query
      4. Bemerkungen
    3. Daten abfragen
      1. Abfragen mit SELECT
      2. Alle Spalten auswählen
      3. Auswahl der Spalten
      4. Filtern
        1. Suche in einem Bereich
        2. Suche nach Zeichenfolgen
        3. Datumsvergleich
        4. Probleme mit Datums-/Uhrzeitvergleichen
        5. IN-Klausel
        6. Auf der Suche nach dem Nichts
      5. Beschränken der Ergebnismenge
      6. Eindeutige Records/doppelte Datensätze
      7. Tabellen verknüpfen
        1. Verknüpfen mit LEFT-JOIN/RIGHT-JOIN
        2. Verknüpfen mit INNER JOIN
        3. Auto-JOIN
      8. Tabellen vereinigen
      9. Datensätze sortieren
      10. Datensätze gruppieren
        1. Die HAVING-Klausel
      11. Unterabfragen
        1. Das Ergebnis einer Query ist Bedingung (WHERE) einer anderen Query
        2. Liefert die Subquery eine Menge von Werten, müssen Sie mit ANY/ALL einen dieser Werte auswählen.
        3. »=ANY« kann durch »IN« ersetzt werden (»< >ALL« entspricht »NOT IN«)
        4. Eine WHERE-Klausel kann mehrere Subqueries enthalten
        5. Synchronisieren von Unterabfragen mit der Hauptabfrage
    4. Daten manipulieren
      1. Einfügen einzelner Datensätze
      2. Einfügen von Abfragedaten
      3. Exportieren/Importieren von Abfragedaten
        1. Speichern in externen Tabellen
      4. Aktualisieren/Ändern
      5. Löschen
        1. Bemerkungen
    5. Erweiterte SQL-Funktionen
      1. Berechnete/Formatierte Spalten
        1. Format-Funktion
        2. Berechnungen in Spalten
        3. Neue Spalten erzeugen
        4. Weitere String-Formatierungsfunktionen
      2. Berechnungsfunktionen
      3. NULL-Werte
      4. Datum und Zeit in SQL-Abfragen
        1. Datumsberechnungen
        2. DateValue
      5. Datentypumwandlungen
      6. Kreuztabellenabfragen
    6. Datenbankverwaltung mit SQL (DDL)
      1. Datenbanken
      2. Tabellen
      3. Indizes
        1. CONSTRAINT-Klausel
        2. Beziehungen festlegen
        3. CREATE INDEX
      4. Tabellen/Indizes löschen oder verändern
      5. Sichten (Views)
      6. Nutzer- und Rechteverwaltung
        1. Datenbankpasswort ändern
        2. User erzeugen/löschen
        3. User neues Passwort zuweisen
        4. Gruppe erzeugen/löschen
        5. Nutzer zu Gruppe hinzufügen/entfernen
        6. Rechte zuweisen/entziehen
    7. Datenbankentwurf optimieren
      1. Indizes
      2. Abfrageoptimierung
      3. Weitere Möglichkeiten
    8. Jet-SQL in der Visual Basic-Praxis
      1. Ausführen oder abfragen?
      2. Einfügen von Strings zur Laufzeit
      3. Datumseingabe
      4. Parameterübergabe
        1. Parameter für OleDbCommand
    9. How-to-Beispiele
      1. 16.1 ... nach einem INSERT das Zählerfeld abfragen?
      2. 16.2 ... die Anzahl der Datensätze ermitteln?
      3. 16.3 ... Datumsteile in SQL zur Suche nutzen?
      4. 16.4 ... die Groß-/Kleinschreibung berücksichtigen?
      5. 16.5 ... WITH OWNERACCESS OPTION verwenden?
      6. 16.6 ... Datensätze richtig verknüpfen?
      7. 16.7 ... doppelte Datensätze aus einer Tabelle löschen?
        1. Temporäre Tabelle
        2. Eindeutiges Feld
      8. 16.8 ... die IFF-Funktion ersetzen?
      9. 16.9 ... ein einfaches SQL-Abfrageprogramm erstellen?
        1. Oberfläche
        2. Quelltext
        3. Test
      10. 16.10 ... Aggregatfunktionen auswerten?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      11. 16.11 ... die Access 2007-Datenbankfeatures unterstützen?
    10. Übersichten
      1. Die wichtigsten SQL-Befehle
      2. Unterschiede ANSI-SQL und Access-SQL
  22. 17. T-SQL in Theorie und Praxis
    1. Einführung
      1. Kategorien von SQL-Anweisungen
        1. Datendefinition
        2. Datenabfrage
        3. Datenmanipulation
        4. Zugriffskontrolle
      2. Schreibweise
      3. Kommentare
      4. Zeichenketten
      5. Variablen deklarieren/verwenden
      6. Bedingungen mit IF/ELSE auswerten
      7. Verwenden von CASE
      8. CHOOSE
      9. Verwenden von WHILE ... BREAK/CONTINUE
      10. Datum und Uhrzeit in T-SQL
      11. Verwenden von GOTO
      12. Fehlerbehandlung
    2. Testprogramm und Beispieldatenbank
      1. Hinweise zur Bedienung
      2. Unsere Beispieldatenbank im Überblick
      3. Alternative Varianten für die SQL-Abfrage
        1. SQL Server Management Studio
        2. Visual Studio
        3. ADO Query
      4. Bemerkungen
    3. Daten abfragen
      1. Abfragen mit SELECT
      2. Alle Spalten auswählen
      3. Auswahl der Spalten
      4. Filtern
        1. Suche in einem Bereich
        2. Suche nach Zeichenfolgen
        3. Datumsvergleich
        4. Probleme mit Datums-/Uhrzeitvergleichen
        5. IN-Klausel
        6. Auf der Suche nach dem Nichts
      5. Beschränken der Ergebnismenge
      6. Eindeutige Records/doppelte Datensätze
      7. Tabellen verknüpfen
        1. Verknüpfen mit LEFT-JOIN/RIGHT-JOIN
        2. Verknüpfen mit INNER JOIN
        3. Auto-JOIN
      8. Tabellen vereinigen
      9. Datensätze sortieren
      10. Datensätze gruppieren
        1. Die HAVING-Klausel
      11. Unterabfragen
        1. Das Ergebnis einer Query ist Bedingung (WHERE) einer anderen Query
        2. Liefert die Subquery eine Menge von Werten, müssen Sie mit ANY/ALL einen dieser Werte auswählen.
        3. »=ANY« kann durch »IN« ersetzt werden (»< >ALL« entspricht »NOT IN«)
        4. Eine WHERE-Klausel kann mehrere Subqueries enthalten
        5. Synchronisieren von Unterabfragen mit der Hauptabfrage
    4. Daten manipulieren
      1. Einfügen einzelner Datensätze
      2. Einfügen von Abfragedaten
      3. Exportieren/Importieren von Abfragedaten
        1. Speichern in externen Tabellen
      4. Aktualisieren/Ändern
      5. Löschen
        1. Bemerkungen
    5. Erweiterte T-SQL-Funktionen
      1. Berechnete/Formatierte Spalten
        1. Format-Funktion
        2. Berechnungen in Spalten
        3. Neue Spalten erzeugen
        4. Weitere String-Formatierungsfunktionen
      2. Berechnungsfunktionen
      3. NULL-Werte
      4. Datum und Zeit in SQL-Abfragen
        1. Datumsberechnungen
        2. Konvertieren in Datumswerte
      5. Datentypumwandlungen
      6. Kreuztabellenabfragen
    6. Datenbankverwaltung mit T-SQL (DDL)
    7. Datenbankentwurf optimieren
      1. Indizes
      2. Abfrageoptimierung
      3. Weitere Möglichkeiten
    8. SQL in der Visual Basic-Praxis
      1. Ausführen oder abfragen?
      2. Einfügen von Strings zur Laufzeit
      3. Parameterübergabe
      4. Datumseingabe
    9. How-to-Beispiele
      1. 17.1 ... nach einem INSERT das Zählerfeld abfragen?
      2. 17.2 ... die Anzahl der Datensätze ermitteln?
      3. 17.3 ... Datumsteile in SQL zur Suche nutzen?
      4. 17.4 ... die Groß-/Kleinschreibung berücksichtigen?
      5. 17.5 ... Datensätze richtig verknüpfen?
      6. 17.6 ... doppelte Datensätze aus einer Tabelle löschen?
        1. Temporäre Tabelle
        2. Eindeutiges Feld
      7. 17.7 ... die IFF-Funktion ersetzen?
      8. 17.8 ... Aggregatfunktionen auswerten?
        1. Oberfläche
        2. Quellcode
        3. Test
        4. Bemerkungen
      9. 17.9 ... SQL-Injection verhindern?
        1. Oberfläche
        2. Quelltext
        3. Test
        4. Schutz vor SQL-Injection
      10. 17.10 ... ein SQL-Abfrageprogramm erstellen
        1. Oberfläche
        2. Quelltext
        3. Test
    10. Übersichten
      1. Die wichtigsten SQL-Befehle
  23. 18. LINQ to SQL
    1. Übersicht
      1. Das LINQ to SQL-Datenmodell
      2. Der DataContext
      3. Die Entitäts-Klassen
      4. Umstiegsbeispiel für den »ehemaligen« SQL-Programmierer
      5. Datenbank-Entwurfskonzepte
    2. Der schnelle Weg zu den SQL Server-Daten
      1. Der LINQ to SQL-Designer
      2. Die .DBML-Datei
      3. Die Designer.vb-Datei
      4. Ein erster Test und ein Blick unter die Motorhaube
      5. SQL-Debugging leicht gemacht
        1. Query Visualizer (Visual Studio 2008/2010)
        2. CommandText abrufen
    3. Der steinige Weg zur Persistenz
      1. Das Datenmodell entwickeln
      2. Erzeugen der Datenbank und Herstellen der Verbindung
      3. Ein paar Gedanken zum Erstellen neuer Datenbanken
    4. Datenauswahl/Datentypen
      1. Einfache Datentypen
      2. IQueryable(Of T)
      3. Datenauswahl basierend auf Detaildaten
      4. Bereichsauswahl (Paging)
      5. Probleme mit First()
    5. Datenbindung
      1. Datenquelle hinzufügen
      2. Anzeige von Detaildaten
      3. Listendarstellung mit anonymen Typen optimieren
      4. Lazy Loading/Prefetch/Delay Loaded
        1. DataLoadOptions
        2. Delay Loaded
      5. ObjectTracking ausschalten
    6. Bearbeiten und Aktualisieren
      1. Editieren
      2. Fehler beim Aktualisieren
      3. Konflikte beim Aktualisieren von Datensätzen
        1. KeepChanges
        2. KeepCurrentValues
        3. OverwriteCurrentValues
        4. MemberConflicts
        5. UpdateCheck
        6. Transaktionen
      4. Lokale Datenaktualisierung per DataContext
      5. Neue Datensätze erzeugen
        1. Einfaches Einfügen
        2. Abrufen eines Identity-Wertes nach dem Einfügen
        3. Neuer Datensatz in Master-Detail-Beziehung
      6. Löschen
        1. Einfache Datensätze
        2. Master-Detail-Datensätzen
    7. Eingabevalidierung
      1. Prüfung auf Feld-Ebene (Eigenschaft)
      2. Prüfung auf Datensatz-Ebene (Objekt)
      3. Überprüfung vor Update, Insert oder Delete
    8. Stored Procedures
      1. Allgemeine Verwendung
      2. Skalare Rückgabewerte
      3. Typisierte Rückgabewerte
      4. Insert/Update/Delete per Stored Procedure
    9. Weitere LINQ to SQL-Features
      1. Direkte SQL-Programmierung
      2. Verwendung der partiellen Klassen/Methoden
    10. Schlussbemerkung
  24. 19. Crystal Reports
    1. Übersicht
      1. Installieren
        1. 1. Schritt: Installation der Runtime
        2. 2. Schritt: Installation von Crystal Report für Visual Studio
      2. Ein Einsteigerbeispiel
        1. Zuerst die Daten in das Projekt einbinden
        2. Wer sucht, der findet ...
        3. Verbindung zur Datenbank
        4. Feldauswahl
        5. Im Designer
        6. Erster Test
        7. Testen in der Druckvorschau
        8. Drucken/Exportieren
      3. Der Report-Designer
      4. Der Reportaufbau
        1. Kopfbereich des Berichts
        2. Seitenkopf
        3. Gruppenkopf
        4. Details
        5. Gruppenfuß
        6. Berichtsfuß
        7. Seitenfuß
      5. Die Druckvorschau-Komponente
    2. Wichtige Funktionen im Überblick
      1. Formelfelder
      2. Parameterfelder
      3. Gruppennamenfelder
      4. Spezialfelder
      5. SQL-Ausdrucksfelder
      6. Laufende Summe-Felder
      7. Unterberichte
      8. Diagramme und Bilder
      9. Weitere Komponenten
      10. Das Ereignis-Modell
    3. Reports entwerfen
      1. Verbindung zur Datenbank herstellen
        1. Ändern des Datenbankpfades zur Laufzeit
      2. Sortieren und Gruppieren
        1. Sortieren/Gruppieren mit Assistentenhilfe
        2. Sortieren/Gruppieren mit dem Designer
      3. Verwenden von Parameterfeldern
        1. Eigene Dialogfelder verwenden
      4. Berechnungen im Report
        1. Zeilensumme
      5. Gestalten mit bedingter Formatierung
        1. Farbliche Gestaltung
      6. Kreuztabellenberichte
        1. Auswahl der Daten
        2. Kreuztabellen-Assistent
      7. Unterberichte
        1. Hauptbericht entwerfen
        2. Unterbericht
    4. Programmieren der Druckvorschau
      1. Der CrystalReportViewer im Überblick
      2. Wichtige Eigenschaften, Methoden und Ereignisse
    5. Direkte Ausgabe auf dem Drucker
      1. Die Lizenz zum Drucken
      2. Druckerauswahl und Konfiguration
      3. Drucken mit Druckerdialog
    6. Exportieren von Reports
      1. Bestimmen des Exportformats
      2. Export als Datei
      3. Export als E-Mail
    7. Praxisbeispiel – Rechnung mit Crystal Report drucken
      1. Datenbasis anpassen
      2. Report erzeugen
      3. Festlegen der Datenquelle
      4. Berechnungen im Report durchführen
        1. Zeilensumme
        2. Nettosumme
      5. Auswahl der gewünschten Datensätze
      6. Reportentwurf
        1. Formatieren der Anzeigedaten
      7. Druckvorschaufenster entwerfen
      8. Zuweisen der Daten und Übergabe der Parameter
      9. Die fertige Rechnung
    8. How-to-Beispiele
      1. 19.1 ... ein Deckblatt erzeugen?
      2. 19.2 ... Seitenzahlen, Druckdatum etc. einblenden?
      3. 19.3 ... Spaltensatz oder Etiketten realisieren?
      4. 19.4 ... die Seitenränder festlegen?
      5. 19.5 ... mehrspaltige Reports erstellen?
      6. 19.6 ... einen Seitenumbruch erzwingen?
      7. 19.7 ... die Position und Größe der Druckvorschau vorgeben?
      8. 19.8 ... Reports in die Applikation einbetten?
      9. 19.9 ... Querdruck auswählen?
      10. 19.10 ... RTF-/HTML-Text ausgeben?
      11. 19.11 ... den Report zur Laufzeit auswählen?
      12. 19.12 ... Summen, Anzahl, Mittelwerte etc. berechnen?
        1. Variante 1 (Berechnungen in Spalten)
        2. Variante 2 (Zeilensummen)
      13. 19.13 ... farbliche und optische Formatierungen realisieren?
      14. 19.14 ... den Datenbankpfad zur Laufzeit anpassen?
      15. 19.15 ... die Login-Informationen zur Laufzeit ändern?
  25. 20. Datenbindung in ASP.NET-Anwendungen
    1. Übersicht Datenbindung unter ASP.NET
      1. Konzept
      2. Übersicht über die DataSource-Steuerelemente
    2. SqlDataSource im Detail
      1. Datenauswahl mit Parametern
      2. Parameter für INSERT, UPDATE und DELETE
      3. FilterExpression
      4. Caching
      5. Weitere Methoden
        1. Aktualisieren/Refresh mit DataBind
      6. Ereignisse
    3. Zugriff auf Geschäftsobjekte mit der ObjectDataSource
      1. Verbindung zwischen Objekt und DataSource
      2. Ein Beispiel sorgt für Klarheit
        1. Die Basisklasse Artikel
        2. Das Geschäftsobjekt
      3. Geschäftsobjekte in einer Session verwalten
    4. Typisierte DataSets und ObjectDataSource
      1. Verwendung von TableAdaptern in ASP.NET-Seiten
        1. Instanziieren von TableAdaptern und typisiertem DataSet
      2. Datenauswahl und Anzeige mit TableAdaptern
      3. Datenmanipulation mit TableAdaptern
      4. ObjectDataSource und typisierte DataSets
        1. 1. TableAdapter und ObjectDataSource verknüpfen
        2. 2. Datenmethoden zuordnen
        3. 3. Datenquellen miteinander verknüpfen (1:n-Beziehung)
        4. 4. GridView-Funktionen aktivieren
        5. 5. Parameter der Datenmethoden mit Controls verknüpfen
        6. 6. Unser erster Quellcode
        7. 7. Nachbessern
        8. 8. Und doch wieder TableAdapter
        9. 9. Etwas Luxus bitte
    5. LinqDataSource
      1. Bindung von einfachen LINQ-Collections
      2. Binden eines LINQ to SQL-DataContext
      3. Berechnete Spalten/Detaildaten
      4. Eigene LINQ-Ausdrücke zur Laufzeit übergeben
      5. Filtern mit der LinqDataSource
    6. EntityDataSource
      1. Entity Data Model erstellen
      2. EntityDataSource anbinden
      3. Datenmenge filtern
    7. QueryExtender
      1. Grundlagen
      2. Suchen
      3. Sortieren
    8. Weitere Datenquellen
      1. Spezialfall AccessDataSource
      2. Verwalten strukturierter Daten mit der XmlDataSource
      3. Typisierte Datenbindung
      4. Model Binding
    9. Das GridView-Steuerelement im Detail
      1. Auswahlfunktion (Zeilenauswahl)
      2. Auswahl mit mehrspaltigem Index realisieren
      3. Hyperlink-Spalte für Detailansicht nutzen
      4. Spalten erzeugen/konfigurieren
      5. Template-Spalten verwenden
        1. Detaildaten in Zeilenform anzeigen
      6. Paging im GridView realisieren
      7. Editieren und Löschen im GridView
      8. Einfügen von Datensätzen
      9. Keine Daten, was tun?
    10. Weitere Steuerelemente für die Datenbindung
      1. DetailsView
        1. Einfügen neuer Datensätze
        2. Datensatzauswahl
      2. FormView
        1. Datenbindung im FormView
      3. DataList
        1. Layout verändern
        2. Bearbeitungsfunktionen implementieren
      4. Repeater
      5. ListView
        1. Erste Schritte
        2. Sortieren
      6. Label/TextBox
      7. CheckBoxList, BulletList, RadioButtonList, DropDownList, ListBox
        1. Datenbindung
      8. Hierarchische Datenanzeige mittels TreeView-Control
      9. Chart-Steuerelement
    11. Eingabeprüfung mit den Validator-Steuerelementen
      1. Übersicht
      2. Wo findet die Fehlerprüfung statt?
      3. Verwendung
      4. RequiredFieldValidator
      5. CompareValidator
      6. RangeValidator
      7. RegularExpressionValidator
      8. CustomValidator
        1. Clientseitige Validierung
        2. Serverseitige Validierung
      9. ValidationSummary
      10. Weitere Möglichkeiten der Validation-Steuerelemente
        1. Validierung zeitweise verhindern
        2. ValidationGroup bilden
        3. Eingabefokus setzen
    12. Reports in ASP.NET-Anwendungen verwenden
      1. Der Microsoft ReportViewer
      2. Direkter Excel-/PDF-Export
      3. Parameterübergabe an lokale Reports
    13. Weitere Themen
      1. Dynamic Data
        1. Dynamic Data-Beispielapplikation
        2. Einbindung in bestehende Projekte durch direkte Adressierung
        3. Weitere Informationen
      2. ASP.NET MVC
        1. Grundlagen
        2. Das Microsoft ASP.NET MVC-Framework
        3. Weitere Informationen
      3. AJAX
        1. Was ist eigentlich AJAX und was kann es?
        2. Die AJAX-Controls in Visual Studio
        3. AJAX-Control-Toolkit
    14. How-to-Beispiele
      1. 20.1 ... die Zellen im GridView formatieren?
        1. Oberfläche
        2. Quelltext
        3. Test
      2. 20.2 ... ein GridView mit Scrollbar realisieren?
      3. 20.3 ... ein GridView mit Mouseover-Effekt realisieren?
        1. Oberfläche
        2. Quelltext
        3. Test
      4. 20.4 ... GridView-Daten im Excel-Format exportieren?
        1. Oberfläche
        2. Quelltext
        3. Test
      5. 20.5 ... Detaildaten in einem Popup-Fenster anzeigen?
        1. Oberfläche Hauptformular
        2. Quellcode
        3. Test
      6. 20.6 ... eine Zeilensumme im GridView berechnen?
      7. 20.7 ... reagieren, wenn keine Daten vorhanden sind?
      8. 20.8 ... im GridView eine Spaltensumme berechnen?
        1. Oberfläche
        2. Quelltext
        3. Test
      9. 20.9 ... korrekte Währungswerte im GridView anzeigen?
      10. 20.10 ... Eingabewerte im GridView validieren?
        1. Oberfläche
        2. Test
      11. 20.11 ... einen E-Mail-Versand in ASP.NET realisieren?
        1. Übersicht
        2. Mail-Server bestimmen
        3. Einfache Text-E-Mails versenden
        4. E-Mails mit Dateianhang
  26. 21. WCF – eine Einführung
    1. Die Programmierung verteilter Systeme
      1. Intranet oder Internet?
      2. Die Vorgänger
        1. DCOM
        2. MTS, COM+ und Enterprise Services
        3. MSMQ
        4. .NET-Remoting
        5. XML-Webdienste
      3. WCF – die neue Technologie
        1. Interoperabilität und Integration
        2. Weitere WCF-Features
        3. Fazit
    2. Allgemeiner Aufbau eines WCF-Systems
      1. WCF-Assemblies – die verfügbaren Bausteine
      2. Service, Host und Client
        1. WCF-Service
        2. WCF-Host
        3. WCF-Client
      3. Nachrichtenaustausch
    3. Das ABC der WCF-Endpunkte
      1. Verträge
      2. Bindungen
        1. HTTP-Bindings
        2. TCP-Bindings
        3. MSMQ-Bindings
      3. Adressen
    4. Programmieren eines WCF-Dienstes
      1. Quellcode als Klassenbibliothek
        1. Vorbereitungen
        2. Vertragsdefinition
        3. Vertragsimplementierung
      2. Das <ServiceContract>-Attribut
      3. Das <OperationContract>-Attribut
      4. Service Klassen ohne Vertrags-Interfaces
    5. Der WCF-Host
      1. Vorbereitungen
      2. Die App.config
      3. Die ServiceHost-Klasse
      4. Festlegen der Basisadressen
      5. Weitere Details der ServiceHost-Klasse
      6. Das <system.serviceModel>-Element
      7. Austausch der Metadaten (MEX)
        1. MEX
        2. Die fertige App.config
    6. Der WCF-Client
      1. Vorbereitungen
      2. Verwenden von SvcUtil.exe
        1. Quellcode Form1
        2. Test
        3. Ergänzungen
      3. Einsatz des Proxy-Generators von Visual Studio
    7. Weitere WCF-Features
      1. Vereinfachte Entwicklung von Host-Anwendungen
        1. Standard-Endpunkte
        2. Multiple Bindungen
        3. Standardmäßige MEX-Konfiguration
      2. Projektvorlage WCF-Dienstbibliothek
        1. Vorbereitungen
        2. Vertrag definieren
        3. Vertrag implementieren
        4. App.config
        5. Einsatz von WcfTestClient.exe
        6. App.config mit SvcConfigEditor bearbeiten
      3. Wichtige Neuigkeiten in WCF 4.5
        1. Konfigurationsdateien vereinfacht generieren
        2. Contract-First-Entwicklung
        3. Standard für ASP.NET-Kompatibilitätsmodus geändert
        4. Asynchrones Streaming
        5. WebServiceHost und Standardendpunkte
        6. HTTPS-Endpunkte einfacher verfügbar
        7. WebSocket-U nterstützung
        8. HttpClient
    8. How-to-Beispiele
      1. 21.1 ... einen WCF-Webdienst mit Datenzugriffsschicht entwickeln?
        1. Vorbereitungen
        2. Entwurf von Dienstvertrag und Datenvertrag
        3. Vertragsimplementierung
        4. Web.config
        5. Projektmappen-Explorer
        6. Bemerkungen
      2. 21.2 ... einen Client für einen WCF-Webdienst erstellen?
        1. Oberfläche
        2. Quellcode
        3. Konfigurationsdatei
        4. Test
      3. 21.3 ... was tun, wenn der IIS nicht funktioniert?
  27. 22. Einführung WCF Data Services
    1. Einführung
      1. Warum WCF Data Services?
      2. Vor- und Nachteile
      3. Und was ist OData?
      4. Übersicht der OData-Abfrageoptionen
    2. Praktisches Arbeiten mit den WCF Data Services
      1. Ein erster Data Consumer
      2. Verwendung von CreateQuery(Of T)
      3. Verwendung von Execute(Of T)
      4. Asynchrone Verarbeitung
      5. Anzahl der Entitäten bestimmen
      6. Verwendung der DataServiceCollection
      7. Eigene Methoden über den Data Service bereitstellen
        1. Definieren der Methoden
        2. Freigabe der Methoden
        3. Einbinden und Aufruf der Methoden
        4. Voraussetzungen für Service Operations
      8. Freigabe der Schnittstelle regeln
      9. Verwendung von Fiddler
    3. How-to-Beispiele
      1. 22.1 ... einen einfachen WCF Data Service erstellen?
      2. 22.2 ... einen Silverlight-Client mit WCF Data Services anbinden?
        1. Einfügen der SQL Server-Datenbank
        2. Erstellen des Entity Data Models
        3. Erstellen des WCF Data Service
        4. Einbinden des WCF Data Service in das Silverlight-Projekt
        5. Konfigurieren der Silverlight-Oberfläche
        6. Abrufen der Daten
        7. Bearbeiten der Daten
        8. Arbeiten mit LINQ und Erweiterungsmethoden
  28. 23. Komplexbeispiel Webshop
    1. Grundkonzept
      1. Aufgabenstellung
      2. Unterschiedliche Frontends für Kunden und Verkäufer
    2. Die Datenbankstruktur
      1. Datenbankdiagramm
      2. Tabellen
        1. Tabelle Artikel
        2. Tabelle Nutzer
        3. Tabelle Artikelgruppen
        4. Tabelle Bestellungen und BestellungsDetails
        5. Steuersaetze
      3. Stored Procedures
        1. UserNeu
        2. CurrentUser
        3. BestellungNeu
        4. BestellungDetailsNeu
        5. Bestellliste
        6. BruttoPreisArtikel
      4. Ansichten/Views
        1. BruttoPreisArtikelgruppe
      5. Bemerkungen
    3. Entwurf Webshop-Projekt/Datenbank
    4. Stammdatenverwaltung mit Webdienst
      1. Das Interface
      2. Entwurf Webdienst
      3. Die Methoden im Einzelnen
        1. Methode Get_Stammdaten
        2. Methode Set_Stammdaten
        3. Methoden Get_Kunden/Set_Kunden
        4. Methode Get_Bestellungen
        5. Methode Get_BestellDetails
        6. Methode AdminCheck
    5. Windows-Verwaltungsfrontend
      1. Entwurf
      2. Verbindung zum Webdienst herstellen
      3. Oberflächengestaltung
        1. Tabseite 1
        2. Tabseite 2
        3. Tabseite 3
      4. Implementierung Stammdatenverwaltung
      5. Test Stammdatenverwaltung
      6. Typisiertes DataSet für den Report
      7. Reportentwurf
      8. Reporteinbindung
      9. Filtern der Artikelgruppen
      10. Kunden-Tabelle
    6. ASP.NET-Kundeninterface
      1. Übersicht
      2. Entwurf Default.aspx
        1. Oberfläche allgemein
        2. Kopf- und Navigationsbereich
        3. Detailbereich
        4. Quellcode
      3. Vorbereitung Benutzersteuerelemente
      4. Welcome.ascx
        1. Oberfläche
        2. Quellcode
      5. Shop.ascx
        1. Oberfläche
        2. Quellcode
      6. Warenkorb.ascx
        1. Oberfläche
        2. Quellcode
      7. Anmeldung.ascx
        1. Oberfläche
        2. Quellcode
      8. Bestellung.ascx
        1. Oberfläche
        2. Quellcode
      9. Danke.ascx
      10. Kundenkonto.ascx
        1. Oberfläche
      11. NeuerKunde.ascx
        1. Oberfläche
        2. Quellcode
    7. Abschlusstest und Bemerkungen
      1. Test
      2. Abschlussbemerkungen
  29. A. Glossar
  30. B. Wichtige Dateiendungen
  31. Stichwortverzeichnis
  32. Impressum