lehrerbibliothek.deDatenschutzerklärung
Datenbank-Programmierung mit Visual Basic.NET  Grundlagen, Rezepte und Beispiele zur Datenbankprogrammierung mit Visual Basic.NET und Visual Studio.NET Version 2002 oder 2003

mit CD-ROM
Datenbank-Programmierung mit Visual Basic.NET


Grundlagen, Rezepte und Beispiele zur Datenbankprogrammierung mit Visual Basic.NET und Visual Studio.NET Version 2002 oder 2003



mit CD-ROM



Walter Doberenz, Thomas Kowalski

Microsoft Press
EAN: 9783860636701 (ISBN: 3-86063-670-7)
678 Seiten, kartoniert, 19 x 24cm, 2003

EUR 39,90
alle Angaben ohne Gewähr

Umschlagtext
Mit Einführung von Microsofts neuer .NET-Technologie ist auch ein neues Zeitalter der Datenbank- und Internetprogrammierung mit atemberaubenden Möglichkeiten angebrochen. Visual Basic.NET setzt die erfolgreiche Tradition der älteren Versionen von Visual Basic fort und ist ideal, um mit wenig Aufwand leistungsfähige und skalierbare Datenbankanwendungen zu erstellen. Dieses Buch eignet sich als ein Leitfaden für Datenbank-Einsteiger und als Nachschlagewerk für Fortgeschrittene, wobei immer der praktische Nutzen im Vordergrund steht. Dem Datenbankneuling werden nach dem Prinzip >soviel wie nötig< die erforderlichen theoretischen Grundkenntnisse klar und verständlich vermittelt. Der Profi findet hier eine umfassende Nachschlagemöglichkeit für die Konzepte der Datenbankprogrammierung unter .NET und Antworten auf Fragen, nach denen er bislang vergeblich gesucht hat. Mit diesem Ansatz stellt dieses Buch ohne unnötigen Ballast die Informationen zur Verfügung, die Sie brauchen, um schnell zu Ergebnissen zu kommen und spart Ihnen durch eine Vielzahl von universell verwendbaren Routinen und Rezepten eine Menge Zeit und Nerven bei der Entwicklung Ihrer Datenbanklösungen.





Lesen Sie:



• Einführung in die neuen Möglichkeiten der Datenbank- und Web-Programmierung mit Visual Basic.NET

• Arbeiten mit Binärdateien, Textdateien, XML-Dateien

• Datenbankzugriff mit ADO.NET

• Datenbindung von Steuerelementen

• Datenbankberichte mit Crystal Report

• Ausführliche Einführung in SQL

• Arbeiten mit Access-Datenbanken

• MSDE und Microsoft SQL Server

• Web-Anwendungen mit ASP.NET

• Programmierung von XML-Webdiensten

• Komplexbeispiel einer Warenkorb-Applikation

• Zahlreiche How-to-Problemlösungen





Auf Begleit-CD:



• Beispielcode für Visual Studio.NET Version 2002 und 2003

• .NET Framework SDK Version 1.1





Die Autoren



Walter Dobrenz und Thomas Kowalski sind die Autoren mehrerer erfolgreicher Bücher zur Programmierung mit Visual Basic. Bei Microsoft Press sind von Ihnen unter anderem bereits die Bücher ‚Datenbankprogrammierung mit Visual Basic 6’ und ‚Microsoft Access 2002 Programmierung’ erschienen.
Verlagsinfo
Kaum ein anderes Programmierwerkzeug bietet die Möglichkeit so schnell und mit wenig Aufwand leistungsfähige und skalierbare Datenbankanwendungen zu erstellen wie Visual Basic. Mit Visual Basic.NET und ADO.NET haben sich jedoch im Vergleich zu früheren Versionen einige Änderungen ergeben, die zwar viele neue Möglichkeiten mit sich bringen, aber auch einigen Informationsbedarf erzeugen. Damit Sie bei der Auswahl der richtigen Technologie und der Implementation nicht den Überblick verlieren, zeigt dieses Buch, wie sie Ihre Datenbanken am besten planen und welche Datenzugriffstechnologien sie verwenden sollten. Weiterhin vermittelt es Ihnen die nötige Theorie und orientiert sich ansonsten an der praktischen Verwendbarkeit und Nutzen der besprochenen Beispiele und Konzepte. Mit diesem Ansatz stellt es ohne unnötigen Ballast die Informationen zur Verfügung, die Sie brauchen, um schnell zu Ergebnissen zu kommen und spart Ihnen durch die universell verwendbaren Routinen und Rezepte eine Menge Zeit und Nerven bei der Entwicklung Ihrer Datenbanklösungen.
Inhaltsverzeichnis
1. Einführung 1

1.1 Unsere Werkstatt 1
1.1.1 Betriebssystem 2
1.1.2 Internet Information Server 2
1.1.3 Installation von Visual Studio.NET 3
1.1.4 Installation der MSDE 3
1.1.5 Weitere Programme 4
1.2 Einführungsbeispiele 4
1.2.1 Zugriff auf lokale Access-Datenbank 5
1.2.2 Anwendung für MS SQL Server 10
1.2.3 ASP.NET-Webanwendung 12
1.2.4 ASP.NET-Webdienst 17
1.2.5 Webdienst-Client 21
1.3 VB.NET und die Datenbankprogrammierung 23
1.3.1 Zur Geschichte des universellen Datenzugriff 24
1.3.2 Die neuen Merkmale webbasierter Anwendungen 24
1.3.3 Was wird aus meinen alten VB 6-Programmen ? 27
1.3.4 Raus aus der DLL-Hölle ! 28
1.3.5 Ein Wort zum .NET-Sicherheitskonzept 29
1.4 Ein wenig Datenbanktheorie 30
1.4.1 Normalisieren von Tabellen 31
1.4.2 Verknüpfen von Tabellen 35
1.4.3 Operationen mit Tabellen 39
1.4.4 Weitere wichtige Begriffe 43


2 Dateien/XML 45

2.2 Operationen mit Verzeichnissen und Dateien 45
2.1.1 Das Datei-System von Windows 45
2.1.2 Klassen für Verzeichnis- und Dateioperationen 46
2.1.3 Verzeichnisse erzeugen und löschen 47
2.1.4 Verzeichnisse verschieben und umbenennen 47
2.1.5 Aktuelles Verzeichnis ermitteln bzw. festlegen 48
2.1.6 Unterverzeichnisse feststellen 48
2.1.7 Enthaltene Dateien ermitteln 48
2.1.8 Dateien kopieren, verschieben und umbenennen 49
2.1.9 Dateiattribute feststellen 50
2.1.10 Weitere Eigenschaften und Methoden 51
2.1.11 Anwendung der Path-Klasse 52
2.1.12 Änderung im Dateisystem überwachen 53
2.2 Lese- und Schreibzugriff auf Dateien 54
2.2.1 Übersicht 54
2.2.2 Erzeugen einer Stream-Instanz 55
2.2.3 Dateiparameter 56
2.2.4 Textdateien 57
2.2.5 Binärdateien 58
2.2.6 Sequenzielle Dateien 59
2.3 XML - etwas Theorie 60
2.3.1 Übersicht 60
2.3.2 Der XML - Grundaufbau 63
2.3.3 Wohlgeformte Dokumente 64
2.3.4 Processing Instruction (PI) 66
2.3.5 Elemente und Attribute 67
2.4 XSD - Schemas 68
2.4.1 XSD - Schemas und ADO.NET 68
2.4.2 XSD - Schema in Visual Studio.NET erstellen 70
2.4.3 XML - Datei mit XSD - Schema erzeugen 72
2.5 Verwendung des DOM unter .NET 73
2.5.1 Übersicht 73
2.5.2 DOM - Integration in VB.NET 74
2.5.3 Laden von Dokumenten 74
2.5.4 Erzeugen von XML - Dokumenten 75
2.5.5 Auslesen von XML - Dateien 77
2.5.6 Direktzugriff auf einzelne Elemente 78
2.5.7 Einfügen von Informationen 78
2.5.8 Suchen in den Baumzweigen 80
2.5.9 Die relationale Sicht auf XML - Daten 83


3 Einführung in ADO.NET 87

3.1 Die wichtigsten Klassen in ADO.NET 87
3.1.1 Klassenhierarchie 87
3.1.2 Die Klassen der Datenprovider 89
3.1.3 Die Klassen im DataSet 90
3.1.4 Das Zusammenspiel der ADO.NET - Klassen 91
3.2 Das Connection - Objekt 92
3.2.1 Allgemeiner Aufbau 92
3.2.2 OleDbConnection 92
3.2.3 SQLConnection 94
3.2.4 Fehlerbehandlung beim Öffnen einer Verbindung 96
3.2.5 Schließen einer Verbindung 97
3.2.6 Verbindungspooling 97
3.2.7 Transaktionen 97
3.2.8 Eigenschaften und Methoden des Connection - Objekts 98
3.2.9 Ereignisse des Connection - Objekts 101
3.3 Das Command - Objekt 102
3.3.1 Erzeugen und Anwenden eines Command - Objekts 102
3.3.2 Erzeugen mittels CreateCommand - Methode 103
3.3.3 Eigenschaften und Methoden 103
3.3.4 Parameter - Objekte 106
3.4 Das DataReader - Objekt 108
3.4.1 DataReader erzeugen 109
3.4.2 Daten lesen 109
3.4.3 Eigenschaften und Methoden 110
3.5 Das DataAdapter - Objekt 110
3.5.1 DataAdapter erzeugen 111
3.5.2 Command - Eigenschaften 111
3.5.3 Fill - Methode 112
3.5.4 Update - Methode 113
3.5.5 UpdateCommand und Parameter - Objekte 114
3.5.6 InsertCommand und DeleteCommand 115
3.5.7 RowUpdating - und RowUpdated - Ereignis 117
3.6 Das CommandBuilder - Objekt 119
3.6.1 Erzeugen 119
3.6.2 Anwenden 119
3.6.3 Einsatzbeschränkungen 120
3.6.4 Einige Regeln 120
3.7 Übersichten 121
3.7.1 Datentypen 121
3.7.2 Connection - Objekt 122
3.7.3 Command - Objekt 123
3.7.4 Parameter - Objekt 123
3.7.5 DataReader - Objekt 124
3.7.6 DataAdapter 125
3.7.7 CommandBuilder 126


4 Das DataSet - Objekt 127

4.1 Einführung 127
4.1.1 Das Objektmodell 128
4.1.2 Methoden zum Erzeugen eines DataSets 129
4.2 Das DataTable - Objekt 131
4.2.1 DataTable erzeugen 131
4.2.2 Spalten hinzufügen 132
4.2.3 Primärschlüssel erzeugen 132
4.2.4 Berechnete Spalten einfügen 133
4.2.5 Einbinden von Constraints 133
4.2.6 Hinzufügen von Relationen 135
4.2.7 Zeilen zur DataTable hinzufügen 137
4.2.8 Auf den Inhalt einer DataTable zugreifen 138
4.2.9 Weitere Hinweise zum Bearbeiten von Zeilen 141
4.2.10 Zeilen löschen 142
4.2.11 Zeilenstatus und Zeilenversion 143
4.2.12 Ereignisse des DataTable - Objekts 146
4.3 Datenansichten mit DataView 147
4.3.1 Erzeugen eines DataView 147
4.3.2 Sortieren und Filtern von Datensätzen 148
4.3.3 Suchen von Datensätzen 148
4.3.4 Zeilenansicht mit DataRowView 149
4.4 Datenanbindung von Steuerelementen 151
4.4.1 DataGrid anbinden 151
4.4.2 Einfache Steuerelemente anbinden 152
4.4.3 Navigieren mit BindingManagerBase 153
4.4.4 Die Anzeige formatieren 154
4.4.5 Datenanbindung von ComboBox und ListBox 154
4.5 Weitere DataSet - Features 155
4.5.1 Die XML - Fähigkeiten des DataSet 155
4.5.2 Typisierte DataSets 158
4.6 Übersichten 159
4.6.1 DataSet 159
4.6.2 DataTable 160
4.6.3 DataColumn 162
4.6.4 DataRow 162
4.6.5 DataView 163


5 Crystal Report 165

5.1 Übersicht 165
5.1.1 Der Report - Designer 166
5.1.2 Der Reportaufbau 167
5.1.3 Die Druckvorschau - Komponente 168
5.1.4 Wichtige Funktionen im Überblick 169
5.1.5 Weitere Komponenten 173
5.1.6 Das Ereignis - Modell 174
5.2 Reports entwerfen 175
5.2.1 Wer sucht, der findet 175
5.2.2 Ein erster Crystal Report 176
5.2.3 Sortieren und Gruppieren 179
5.2.4 Verwenden von Parameterfeldern 183
5.2.5 Berechnungen im Report 185
5.2.6 Gestalten mit bedingter Formatierung 187
5.2.7 Kreuztabellenberichte 189
5.3 Programmieren der Druckvorschau 192
5.3.1 Der CrystalReportViewer im Überblick 192
5.3.2 Wichtige Eigenschaften, Methoden und Ereignisse 193
5.4 Ausgabe auf dem Drucker 195
5.4.1 Die Lizenz zum Drucker 195
5.4.2 Druckerauswahl und Konfiguration 196
5.4.3 Drucken mit Druckerdialog
5.5 Exportieren von Reports 197
5.5.1 Bestimmen des Exportformats 197
5.5.2 Export als Datei 198
5.5.3 Export als E-Mail 199
5.6 Crystal Reports im Web 200
5.6.1 Das ASP.NET – Projekt 200
5.6.2 Herstellen der Datenbindung 201
5.6.3 Integrieren des Reports 202
5.6.4 Probleme mit der Sicherheit 203
5.7 Tipps & Tricks 204
5.7.1 Ein Deckblatt erzeugen 204
5.7.2 Seitenzahlen, Druckdatum etc. einblenden 204
5.7.3 Die Seitenränder festlegen 205
5.7.4 Einen Seitenumbruch erzwingen 205
5.7.5 Die Position und Größe der Duckvorschau vorgeben 206
5.7.6 Einbetten des Reports in die Applikation 206
5.7.7 Querdruck auswählen 207
5.7.8 Ausgabe von RTF – Text 207
5.7.9 Summe, Anzahl, Mittelwerte etc. berechnen 207
5.7.10 Reportauswahl zur Laufzeit 208
5.7.11 Farbliche und optische Formatierungen 209
5.7.12 So ändern Sie das Layout eines Berichts 209
5.7.13 Datenbankpfad zur Laufzeit anpassen 209
5.7.14 Ändern der Login – Informationen zur Laufzeit 210


6 SQL – Programmierung 211

6.1 Einführung 211
6.1.1 SQL – Dialekte 212
6.1.2 Kategorien von SQL – Anweisungen 212
6.2 Testprogramm und Beispieldatenbank 214
6.2.1 Hinweise zur Bedienung 214
6.2.2 Die Beispieldatenbank im Überblick 214
6.2.3 Alternative Varianten für die SQL – Abfrage 215
6.2.4 Bemerkungen 220
6.3 Daten abfragen 220
6.3.1 Abfragen mit SELECT 220
6.3.2 Alle Spalten auswählen 221
6.3.3 Auswahl der Spalten 222
6.3.4 Filtern 223
6.3.5 Beschränken der Ergebnismenge 229
4.1.2 Eindeutige Records/ doppelte Datensätze 229
6.3.6 Tabellen verknüpfen 230
6.3.7 Tabellen vereinigen 233
4.1.3 Sortieren 234
6.3.8 Gruppieren 234
6.3.9 Unterabfragen 236
6.4 Daten manipulieren 240
6.4.1 Einfügen einzelner Datensätze 241
6.4.2 Einfügen von Abfragedaten 242
6.4.3 Exportieren/ Importieren von Abfragedaten 244
6.4.4 Aktualisieren/ Ändern 246
6.4.5 Löschen 247
6.5 Erweiterte SQL – Funktionen 248
6.5.1 Berechnete/ Formatierte Spalten 248
4.1.4 Berechnungsfunktionen 254
6.5.2 NULL – Werte 255
6.5.3 Datum und Zeit in SQL – Abfragen 257
6.5.4 Datentypumwandlungen 261
6.5.5 Kreuztabellenabfragen 262
6.6 Datenbankverwaltung mit SQL (DDL) 264
6.6.1 Datenbanken 265
6.6.2 Tabellen 265
6.6.3 Indizes 266
6.6.4 Tabellen/ Indizes löschen oder verändern 268
6.6.5 Sichten (Views) 269
6.6.6 Nutzer- und Rechteverwaltung 270
6.7 Optimieren 273
6.7.1 Indizes 274
6.7.2 Abfrageoptimierung 274
6.7.3 Weitere Möglichkeiten 275
6.8 SQL in der VB.NET – Praxis 275
6.8.1 Ausführen oder Abfragen ? 275
6.8.2 Einfügen von Strings zur Laufzeit 277
6.8.3 Datumseingabe 278
4.1.5 Parameterübergabe 278
6.9 Tipps & Tricks 281
6.9.1 Wie kann ich nach einem INSERT das Zählerfeld abfragen ? 281
6.9.2 Wie kann ich die Anzahl der Datensätze ermitteln ? 281
6.9.3 Wie gebe ich ein Datum in eine SQL – Anweisung ein ? 282
6.9.4 Wie nutze ich Datumsteile in SQL zur Suche ? 282
6.9.5 Wie kann ich die Groß-/ Kleinschreibung berücksichtigen ? 283
6.9.6 Suchen ohne Rücksicht auf Groß-/ Kleinschreibung ? 283
4.1.6 Was bedeutet WITH OWNERACCESS OPTION ? 284
4.1.7 Warum erhalte ich zu viele Datensätze beim verknüpfen ? 284
6.9.7 Wie lösche ich doppelte Datensätze aus einer Tabelle ? 285
6.9.8 Wo ist die IFF – Funktion ? 286
6.9.9 Wo finde ich weiter Informationen zu Jet – SQL ? 287
6.10 Übersichten 287
6.10.1 Die wichtigsten SQL – Befehle 287
6.10.2 Unterschiede ANSI – SQL und Access – SQL 288


7 Verwalten von Access – Datenbanken mit VB.NET 289

7.1 Ein erster Blick auf MS Access – Datenbanken 289
7.1.1 Warum Access ? 290
7.1.2 Access – Datentypen 290
7.1.3 Beschränkungen 291
7.2 Zugriff aus VB.NET 292
7.2.1 Warum nicht nur ADO.NET ? 292
7.2.2 Die ADOX – Library 293
7.2.3 Die JRO – Library 294
7.2.4 ADO MD 294
7.2.5 Einbinden von ADOX und JRO in VB.NET 296
7.2.6 Parameter für ADO.NET- Connectionstrings 296
7.2.7 Access – Datenbankpasswort 297
7.2.8 Access – Datenbanksicherheit (Benutzer-/ Gruppenebene) 298
7.2.9 Datenbankzugriff auf schreibgeschützte Medien (CD, DVD) 298
7.3 Datenbanken erstellen 298
7.3.1 Die Create – Methode 299
7.3.2 Weitere Parameter 299
7.3.3 Jet – spezifische Optionen 299
7.4 Tabellen/ Indizes erstellen/ verwalten 301
7.4.1 Tabellendefinition 301
7.4.2 Indexdefinition 306
7.4.3 Erstellen von Prozeduren und Sichten 308
7.4.4 Tabellen verknüpfen (Relationen) 308
7.5 Zugriffsschutz in Access – Datenbanken 310
7.5.1 Grundlagen 310
7.5.2 Sichern auf Datenbankebene 311
7.5.3 Erstellen neuer Benutzer und Gruppen 312
7.5.4 Vergabe von Rechten 313
7.5.5 Verschlüsseln von Datenbanken 315
7.6 Einbinden externer Tabellen 316
7.6.1 Erstellen einer Verbindung 317
7.6.2 Aktualisieren einer Verbindung 318
7.6.3 Löschen einer Verbindung 319
7.7 Replizieren von Datenbanken 319
7.7.1 Begriffe 319
7.7.2 Aufbau einer Replikatgruppe 320
7.7.3 Probleme bei Replikationen 320
7.7.4 Vorbereitungen zur praktischen Umsetzung 320
7.7.5 Replikat erstellen 321
7.7.6 Abgleich von Kopie und Original 322
7.8 Datenbankanalyse 323
7.8.1 Datenbankeigenschaften 323
7.8.2 Tabellen 324
7.8.3 Sichten/ Abfragen 326
7.8.4 Nutzer und Nutzergruppen 329
7.8.5 Nutzer- und Gruppenberechtigungen 331
7.10 Tipps & Tricks 334
7.10.1 Wie prüft man die ADO – Versionsnummer ? 334
7.10.2 Wo findet man die neusten ADO – Versionen ? 334
7.10.3 Wie installiere ich ADO ? 334
7.10.4 Access – Datenbanken exklusiv öffnen 335
7.10.5 Zugriffsgeschwindigkeiten auf Access – Datenbanken erhöhen 335
7.10.6 Access – Datenbanken im Netzwerk 335
7.10.7 Alle aktiven Verbindungen zur Datenbank auflisten 335
7.10.8 Spalte mit eindeutigen Zufallswerten erzeugen 336
7.10.9 Datenbank - Kennwort ändern 336
7.10.10Abfragen über mehrere Datenbanken 337
7.10.11Beschreibung von Datenbankfeldern abrufen 337


8 Microsoft SQL Server 339

8.1 Übersicht 339
8.1.1 Was ist die MSDE/ SQL Server Desktop Engine ? 339
8.1.2 Unterschiede MSDE/ MS SQL Server/ Jet – Engine 340
8.1.3 Die wichtigsten Tools des SQL Servers 341
8.1.4 Vordefinierte Datenbanken 342
8.1.5 Einschränkungen 342
8.1.6 Zugriff aus VB.NET 343
8.2 Die Sprache des SQL Servers: Transact – SQL 345
8.2.1 Schreibweise 346
8.2.2 Kommentare 346
8.2.3 Deklaration/ Verwendung von Variablen 346
8.2.4 Bedingungen IF/ ELSE auswerten 347
8.2.5 Verwenden von CASE 348
8.2.6 Verwenden von WHILE…BREAK/ CONTINUE 348
8.2.7 Verwenden von GOTO 349
8.2.8 Fehlerbehandlung 349
8.3 Datenbanken verwalten mit DMO 349
8.3.1 Installation 350
8.3.2 Einführungsbeispiel 350
8.4 Praktisches Arbeiten mit dem SQL Server 352
8.4.1 Erstellen von SQL Server – Datenbanken 352
8.4.2 Erzeugen und Verwalten von Tabellen 355
8.4.3 Datenbankdiagramme 358
8.4.4 Erzeugen und Verwenden von Sichten (Views) 360
8.4.5 Verwendung von gespeicherten Prozeduren 361
8.4.6 Programmierung/ Verwendung von Triggern 365
8.4.7 Volltextabfragen 368
8.5 Fehlerbehandlung 372
8.5.1 Das Fehlermodell des SQL Servers 372
8.5.2 Verwenden von @@ERROR 373
8.5.3 Verwenden von RAISEERROR 373
8.5.4 Fehlerbehandlung mit ADO.NET 374
8.6 Datensicherheit auf dem Microsoft SQL Server 375
8.6.1 Überblick 375
8.6.2 Verwalten mit dem Enterprise – Manager 378
8.6.3 Verwalten mit TSQL 381
8.7 XML – Unterstützung 384
8.7.1 Einrichten des Servers 384
8.7.2 Abfragen mit dem Internet Explorer 385
8.7.3 Abfragen mit VB.NET 389
8.8 Tipps & Tricks 390
8.8.1 Alle Nutzer einer Datenbank ermitteln 390
8.8.2 Alle registrierten MS SQL Server ermitteln 390
8.8.3 Alle Datenbanken und deren Tabellen ermitteln 391
8.8.4 Eine Tabelle löschen 392
8.8.5 Eine Tabelle mit dem DMO erzeugen 392
8.8.6 Anzahl der Datensätze beschränken 393
8.8.7 Platzhalterzeichen in TSQL 393
8.8.8 Leerzeichen entfernen 394
8.8.9 Teilstrings erzeugen 394
8.8.10 Die MSDE administrieren 394
8.8.11 Lassen sich MSDE und SQL Server gleichzeitig installieren ? 395
8.8.12 Kann ich mit der MSDE die Volltextsuche nutzen ? 395
8.8.13 Mit der MSDE ein Backup/ Restore realisieren 395
8.8.14 Lässt sich mit DROP INDEX jeder Index löschen ? 396
8.8.15 Warum wird @@ERROR nicht korrekt verarbeitet ? 396
8.8.16 Die Anzahl der Datensätze einer Abfrage bestimmen 396
8.8.17 Kann man IFF ersetzen ? 396
8.8.18 Mit Bedingungen Feldinhalte formatieren 397
8.8.19 Warum sind Abfragen mit Platzhaltern so langsam ? 398
8.8.20 Groß-/ Kleinschreibung berücksichtigen 398
8.8.21 Das Ergebnis einer Stored Procedure speichern 398
8.8.22 Eine Datenbank umbenennen 399
8.8.23 Eine Datenbank zwischen Servern verschieben 399
8.8.24 Nach dem Löschen IDENTITY auf 0 setzen 400
8.8.25 Datenbankstruktur kopieren 400
8.8.26 Eine Tabellenspalte umbenennen 402
8.8.27 Aktualisierungs- und Löschweitergaben realisieren 402
8.8.28 Kein ORDER BY in Views ? 402
8.8.29 Änderungen in Tabellen protokollieren 402
8.8.30 Die Unterschiede zwischen temporären Tabellen 403
8.8.31 SQL – Anweisungen debuggen 403
8.8.32 Daten aus verschiedenen Datenbanken anzeigen 404
8.8.33 Kann man die PRINT – Anweisung in VB.NET anzeigen ? 405
8.9 Übersichten 405
8.9.1 Datentypen 405
8.9.2 Unterschiede Access- und SQL Server Datentypen 406


9 Webbasierte Anwendungen 407

9.1 ASP.NET – eine Übersicht 407
9.1.1 ASP – ein kurzer Rückblick 407
9.1.2 Was ist nun ASP.NET ? 408
9.1.3 Vorteile von ASP.NET gegenüber ASP 410
9.1.4 Wichtige Voraussetzungen für den ASP.NET – Einsatz 411
9.1.5 Und was hat das alles mit VB.NET zu tun ? 411
9.2 Einführungsbeispiel 413
9.2.1 Erstellen des Projekts 413
9.2.2 Oberflächengestaltung 415
9.2.3 Ereignisprogrammierung 417
9.2.4 Ausgaben in eine Tabelle 417
9.2.5 Ereignisse von Textboxen 422
9.3 Übersicht ASP.NET – Objekte 423
9.3.1 Session 423
9.3.2 Application 424
9.3.3 Page 425
9.3.4 Request 427
9.3.5 Response 429
9.4 Datenbindung und ASP.NET 433
9.4.1 Verknüpfen mit der Datenbank 433
9.4.2 DataSet generieren 434
9.4.3 Verwenden der Web – Controls 434
9.4.4 Hinter den Kulissen 435
9.5 Fehlerbehandlung 436
9.5.1 Fehler beim Entwurf 436
9.5.2 Laufzeitfehler 437
9.5.3 Eine eigene Fehlerseite 438
9.5.4 Fehlerbehandlung im WebForm 439
9.5.5 Fehlerbehandlung in der Anwendung 440
9.5.6 Lokale Fehlerbehandlung 441
9.6 Übersicht 441


10 XML – Webdienste 443

10.1 Grundlagen 443
10.1.1 Wozu braucht man einen Webdienst ? 444
10.1.2 Was versteht man unter SOAP ? 444
10.1.3 WSDL – noch eine Sprache ? 444
10.1.4 Wozu dient das DISCO – Dokument ? 445
10.1.5 Wie funktioniert ein Webdienst ? 445
10.1.6 Darf ich meine lokalen Klassen weiter verwenden ? 447
10.1.7 Was ist mit der Kompatibilität ? 447
10.2 Ein Webdienst im Detail 448
10.2.1 Aufgabenstellung 448
10.2.2 Webdienst – Projekt eröffnen 448
10.2.3 Die Projektdateien 448
10.2.4 Ihr Quellcode 451
10.2.5 Webdienst testen 453
10.2.6 Bemerkungen 457
10.3 Ein Webdienstclient im Detail 457
10.3.1 Aufgabenstellung 457
10.3.2 Webdienstclient – Projekt eröffnen 457
10.3.3 Webverweis hinzufügen 458
10.3.4 Die Projektdateien 458
10.3.5 Ihr Quellcode 460
10.3.6 Webdienstclient testen 462
10.3.7 Bemerkungen 463
10.4 Web – Methoden asynchron abrufen 463
10.4.1 Synchrone und asynchrone Methoden 463
10.4.2 Bedienoberfläche für Testclient 463
10.4.3 Quellcode für Testclient 464
10.4.4 Client testen 465
10.4.5 Bemerkungen 466
10.5 Probleme mit Zugriffsrechten 466
10.5.1 Fehlende Schreibweise bei Access – Datenbanken 467
10.5.2 Benutzer ASPNET hinzufügen 467
10.5.3 Impersonation 469
10.5.4 Fehler beim Aufrufen einer WebService – Methode 469
10.6 Sicherheit von Webdiensten 470
10.6.1 Digitale Signatur von SOAP – Nachrichten 471
10.6.2 Verschlüsseln von SOAP – Nachrichten 471
10.7 Tipps & Tricks 472
10.7.1 Änderungen im DataGrid rückgängig machen 472
10.7.2 Webverweis aktualisieren 472


11 Komplexbeispiel Warenkorb 473

11.1 Kunden – Tabelle 474
11.1.1 Bedienoberfläche 474
11.1.2 Datenadapter und Datenbankverbindung 475
11.1.3 Typisiertes DataSet hinzufügen 476
11.1.4 Klassencode und Schemadatei 477
11.1.5 Steuerelemente anbinden 479
11.1.6 Zwischentest 479
11.1.7 Abschluss der ersten Etappe 482
11.2 Bestellung – Tabelle 483
11.2.1 Bedienoberfläche und datenspezifische Objekte 483
11.2.2 Der Quellcode kann kopiert werden 484
11.2.3 Abschluss der zweiten Etappe 485
11.3 Bestelldetails – Tabelle 485
11.3.1 Bedienoberfläche 486
11.3.2 Ein neuer DataAdapter muss her ! 486
11.3.3 Typisiertes DataSet erweitern 487
11.3.4 Tabellen verknüpfen 487
11.3.5 DataGrid anbinden 488
11.3.6 Quellcode 489
11.3.7 Zwischentest 490
11.3.8 Nettopreis der Bestellung ermitteln 491
11.3.9 Abschluss der dritten Etappe 492
11.4 Produkte – Tabelle 493
11.4.1 Bedienoberfläche 493
11.4.2 Quellcode – Ergänzungen für Form2 494
11.4.3 Quellcode für Form3 495
11.4.4 Zwischentest 496
11.4.5 BestellDetails und Produkte mit ComboBox verbinden 496
11.4.6 Einzelpreis eintragen 498
11.4.7 Abschluss der vierten Etappe 498
11.5 Datengebundene Formatierungen 499
11.5.1 Bedienoberfläche 499
11.5.2 Formatieren des Eingangsdatums 500
11.5.3 Formatieren der Währung 500
11.5.4 Formatieren der Spalten des DataGrid 501
11.5.5 Abschluss der fünften Etappe 502
11.6 Rechnung mit Crystal Report drucken 503
11.6.1 Datenbasis anpassen 503
11.6.2 Report erzeugen 503
11.6.3 Festlegen der Datenquelle 504
11.6.4 Anpassen der Relationen 505
11.6.5 Berechnungen im Report durchführen 506
11.6.6 Auswahl der gewünschten Datensätze 507
11.6.7 Reportdesign 508
11.6.8 Druckvorschaufenster entwerfen 509
11.6.9 Zuweisen der Daten und Übergabe der Parameter 510
11.6.10Aufruf des Reports 510
11.6.11Die fertige Rechnung 511


12 How – to 513

12.1 Wie kann ich … (Dateien/ XML) 513
12.1.1 …Datei – Infos gewinnen ? 513
12.1.2 …Verzeichnis- und Datei – Informationen ermitteln ? 515
12.1.3 …auf eine Textdatei zugreifen ? 519
12.1.4 …byteweise lesen und schreiben ? 520
12.1.5 …eine sequentielle Datei lesen und schreiben ? 521
12.1.6 …serialisierte Objekte in einer Datei abspeichern ? 525
12.1.7 …eine DataTable in einer Binärdatei speichern 529
12.1.8 …ein DataSet in einer XML – Datei speichern ? 532
12.1.9 …in XML – Dokumenten navigieren ? 534
12.1.10…XML – Daten in eine TreeView einlesen ? 538
12.2 Wie kann ich … (ADO.NET) 541
12.2.1 …den Verbindungsassistenten einsetzen ? 541
12.2.2 …ein Connection – Objekt programmieren ? 544
12.2.3 …wichtige ADO.NET – Objekte programmieren ? 544
12.2.4 …mit DataReader und ListView arbeiten ? 548
12.2.5 …eine Aktionsabfrage ausführen ? 551
12.2.6 …Daten direkt zur Datenbank hinzufügen oder löschen ? 553
12.2.7 …Master – Detailbeziehungen im DataGrid anzeigen ? 556
12.2.8 …eine gespeicherte Prozedur aufrufen ? 558
12.2.9 …eine Access – Auswahlabfrage aufrufen ? 560
12.2.10…parametrisierte Abfragen ausführen ? 562
12.2.11…in einem DataView sortieren und filtern ? 564
12.2.12…nach Datensätzen suchen ? 565
12.2.13…Datensätze manuell aktualisieren ? 568
12.2.14…Datensätze hinzufügen und löschen ? 570
12.2.15…eine ListBox an eine DataView anbinden ? 574
12.2.16…Steuerelemente an die Datenquelle binden ? 576
12.2.17…ein zweites Formular an die Datenquelle binden ? 581
12.2.18…mit der ComboBox zwei Tabellen verknüpfen ? 585
12.2.19…die Spalten im DataGrid formatieren ? 590
12.2.20…Schemainfos von der Datenbank abrufen ? 592
12.2.21…mit Stapel – Abfragen arbeiten ? 594
12.2.22…RowUpdating- und RowUpdated – Ereignis verstehen ? 596
12.2.23…ein typisiertes DataSet erzeugen ? 599
12.2.24…Bilder aus der Datenbank anzeigen ? 603
12.2.25…Bilddateien in einer Datenbank verwalten ? 606
12.2.26…BLOB – Daten anzeigen ? 607
12.2.27…eine Chart – Komponente in .NET integrieren ? 609
12.2.28…Daten als Diagramm darstellen ? 610
12.2.29…mit dem DataForm – Assistenten arbeiten ? 613
12.3 Wie kann ich … (SQL/ SQL Server) 621
12.3.1 …die Beispieldatenbank auf dem SQL Server installieren ? 621
12.3.2 …ein SQL – Abfrageprogramm erstellen ? 621
12.3.3 …Aggregatfunktionen auswerten ? 624
12.3.4 …SQL – Injection verhindern ? 625
12.4 Wie kann ich … (Webanwendungen) 629
12.4.1 …eine ASP.NET – Anwendung von CD installieren ? 629
12.4.2 …Daten zwischen WebForms austauschen ? 631
12.4.3 …Paging im DataGrid realisieren ? 634
12.4.4 …Daten im DataGrid zur Laufzeit sortieren ? 636
12.4.5 …Master – Detailbeziehungen mit dem DataGrid darstellen ? 638
12.4.6 …Daten im DataGrid editieren ? 642
12.4.7 …Einträge im DataGrid löschen ? 646
12.4.8 …die Ausführung von Webmethoden überwachen ? 646
12.4.9 …eine einfache Klasse programmieren und anwenden ? 649
12.4.10…lokale Klassen in einem Webdienst nutzen ? 652
12.4.11…komplexe Objekte mit Webdiensten übertragen ? 655


Anhang 661

A: Northwind versus Nordwind 661
B: Glossar 665


Stichwortverzeichnis 669