DATENBANK- PROGRAMMIERUNG MIT



Ähnliche Dokumente
Inhaltsverzeichnis. Thorsten Kansy. Datenbankprogrammierung mit.net 4.0. Herausgegeben von Dr. Holger Schwichtenberg ISBN:

Thorsten Kansy. Datenbankprogrammierung. mit.net 3.5 HANSER

Installation der kostenlosen Testversion

Datenbankprogrammierung mit.net 4.0

Leseprobe. Thomas Hummel, Christian Malorny. Total Quality Management. Tipps für die Einführung. ISBN (Buch):

Inhaltsverzeichnis. 1 Der SQL Server 2008 stellt sich vor Die grafischen Tools des SQL Server Eine neue Datenbank erstellen 87

Inhaltsverzeichnis. Thorsten Kansy. Datenbankprogrammierung mit.net 3.5. Mehrschichtige Applikationen mit Visual Studio 2008 und MS SQL Server 2008

POCKET POWER. Wissensmanagement. 4. Auflage

Scholz (Hrsg.) / Krämer / Schollmayer / Völcker. Android-Apps. Konzeption, Programmierung und Vermarktung

Installationsanleitung dateiagent Pro

OP-LOG

X.systems.press ist eine praxisorientierte Reihe zur Entwicklung und Administration von Betriebssystemen, Netzwerken und Datenbanken.

objectif Import von Excel-Daten Bei Fragen nutzen Sie bitte unseren Support: Telefon: +49 (30)

Kurzanleitung WebSphere MQ Funktionen

Variablen & erweiterte Aktionen nutzen

Windows 8. Tipps & Tricks. Das Franzis Praxisbuch. 288 Seiten Windows-8- Insiderwissen. Christian Immler. Schnelle Lösungen für Windows-8-Probleme

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Design for Six Sigma umsetzen POCKET POWER

Website. zur eigenen. Ihr Weg ins Web: Domain, Hoster, Installation, Verwaltung, Pflege und IT-Recht. Websites. erstellen

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

objectif Requirements Modeller

SF-RB. Modul Provisionsabrechnung & Planung Reiseagentenprovisionsabrechnung & Planung. SF-Software Touristiksoftware

SQL Server 2008 Der schnelle Einstieg

3D-Architektur-Visualisierung

Grundmann Rathner Abschlussprüfungen Bankwirtschaft, Rechnungswesen und Steuerung, Wirtschafts- und Sozialkunde

Kill Keyword Density. Weshalb die Keyword Density blanker Unsinn ist.

Gelassenheit gewinnen 30 Bilder für ein starkes Selbst

Netzwerkverwaltung mit Gruppenrichtlinien unter Windows Server 2012 R2. STUDENT-Pack. Professional Courseware

Inhaltsverzeichnis. Vorwort Einleitung... 15

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Filmpraxis: Offline-Aktivierung für Edius

Seniorenbüros im Land Brandenburg

POCKET POWER. Change Management. 4. Auflage

Microsoft Windows XP SP2 und windream

SQL Server 2005 Der schnelle Einstieg

Audiospektrum- Analyse mit Mikrocontrollern

Installation und Konfiguration Microsoft SQL Server 2012

BEDIENUNG ABADISCOVER

Anleitung für die Umstellung auf das plus Verfahren mit manueller und optischer Übertragung

K. Hartmann-Consulting. Schulungsunterlage Outlook 2013 Kompakt Teil 1

Wiederherstellen der Beispieldatenbanken zum Buch Microsoft Project 2010

SIX SIGMA TEIL 2: DIE DEFINE PHASE DMAIC MARTIN ZANDER. Green Belt Level

White Paper. Konfiguration und Verwendung des Auditlogs Winter Release

SharePoint Demonstration

Tutorial Windows XP SP2 verteilen

Outlook-Abgleich. Copyright 2012 cobra computer s brainware GmbH

LINQ to SQL. Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel. Institut für Informatik Software & Systems Engineering

Umzug der Datenbank Firebird auf MS SQL Server

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Samsung Galaxy S4 Buch

Interaktive Whiteboards im Unterricht

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch

Bachelorarbeit. Private Altersvorsorge. Beurteilung ausgewählter Anlageformen. Michael Roth. Bachelor + Master Publishing

LOG-FT BAG Filetransfer zum Austausch mit dem Bundesamt für Güterverkehr (BAG) Kurzanleitung

Christina Janning. Change Management. Möglichkeiten der Kommunikation zur Reduzierung innerbetrieblicher Widerstände. Diplomarbeit

YouTube: Video-Untertitel übersetzen

Projektmanagement in Outlook integriert

Anleitung für die Einrichtung weiterer Endgeräte in 4SELLERS SalesControl

PHP Kurs Online Kurs Analysten Programmierer Web PHP

Praxisleitfaden Projektmanagement

Microsoft Office 365 Kalenderfreigabe

Christian Kremer. Kennzahlensysteme für Social Media Marketing. Ein strategischer Ansatz zur Erfolgsmessung. Diplomica Verlag

LEAN MANUFACTURING. Teil 7 Lean und Six Sigma. Ein Quick Guide für den schnellen Einstieg in die Möglichkeiten der Lean Philosophie.

Stapelverarbeitung Teil 1

TFS Funktionen Kurzanleitung

Schritt 1: Verwenden von Excel zum Erstellen von Verbindungen zu SQL Server Analysis Services-Daten

System-Update Addendum

Industrie 4.0 in Produktion, Automatisierung und Logistik

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Warum beschäftigt sich ein Linux-Systemhaus mit der Installation von OTRS mit einem Microsoft SQL Server?

Verfahrensanleitung Umstellung BTX auf VR-NetKey in T-Online 6.0

ICS-Addin. Benutzerhandbuch. Version: 1.0

Outlook Express: Einrichtung Account

COSIDNS 2 ISPconfig3. Version 0.1 ( )

SEO Strategie, Taktik und Technik

Whitepaper. Produkt: combit Relationship Manager / address manager. Dateiabgleich im Netzwerk über Offlinedateien

Auditcheckliste. für Systemaudits nach ISO/TS 16949:2009 DIN EN ISO 9001 ISO/TS Martin Zander

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Summenbildung in Bauteiltabellen mit If Then Abfrage

Templates für Joomla! 1.6

DesignCAD Toolkit DC Toolkit Pro 2 2D V24. Erste Schritte. Copyright: 2015, Franzis Verlag

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Produktinfo Zahlungsvorschlagsliste

Seite Wo finde ich die Landingpage Auswahl? Seite Wie aktiviere ich eine Landingpage? Seite

Konfigurationsmanagement mit Subversion, Ant und Maven

Installationsanleitung adsl Privat unter Windows XP

PC Software PPS-FM11 Windows Auswertung und Monitor BDE Betriebsdatenerfassung mit Terminals, RFID und SQL Client

Installation KVV SQL

Jochen Bartlau. List & Label. schnell + kompakt

bla bla OX App Suite -Clients verwenden

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

Perceptive Document Composition

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Rüdiger Zarnekow Lutz Kolbe. Green IT. Erkenntnisse und Best Practices aus Fallstudien

Bachelorarbeit BESTSELLER. Benjamin Höber. Die Bad Bank als mögliches Mittel zur Bewältigung der Finanzkrise

Erstellen eines Formulars

Handbuch Kundenmanagement

Transkript:

thorsten KANSY.NET BIBLIOTHEK hrsg. von dr. holger SCHWICHTENBERG DATENBANK- PROGRAMMIERUNG MIT.NET 4.5 MIT VISUAL STUDIO 2012 UND SQL SERVER 2012 EXTRA: Mit kostenlosem E-Book

Kansy Datenbankprogrammierung mit.net 4.5 Bleiben Sie auf dem Laufenden! Der Hanser Computerbuch-Newsletter informiert Sie regelmäßig über neue Bücher und Termine aus den verschiedenen Bereichen der IT. Profitieren Sie auch von Gewinnspielen und exklusiven Leseproben. Gleich anmelden unter www.hanser-fachbuch.de/newsletter

Thorsten Kansy Datenbankprogrammierung mit.net 4.5 Mit Visual Studio 2012 und SQL Server 2012

Der Autor: Thorsten Kansy, Nidderau-Erbstadt Der Herausgeber: Holger Schwichtenberg, www.it-visions.de, Essen Alle in diesem Buch enthaltenen Informationen, Verfahren und Darstellungen wurden nach bestem Wissen zusammengestellt und mit Sorgfalt getestet. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grund sind die im vorliegenden Buch enthaltenen Informationen mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autoren und Verlag übernehmen infolgedessen keine juristische Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieser Informationen oder Teilen davon entsteht. Ebenso übernehmen Autoren und Verlag keine Gewähr dafür, dass beschriebene Verfahren usw. frei von Schutzrechten Dritter sind. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Waren be zeich nungen usw. in diesem Buch berechtigt deshalb auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und MarkenschutzGesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Bibliografische Information der Deutschen Nationalbibliothek: Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbiblio grafie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar. Dieses Werk ist urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdruckes und der Vervielfältigung des Buches, oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form (Fotokopie, Mikrofilm oder ein anderes Verfahren) auch nicht für Zwecke der Unterrichtsgestaltung reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden. 2013 Carl Hanser Verlag München www.hanser-fachbuch.de Lektorat: Sieglinde Schärl Herstellung: Andrea Stolz Sprachlektorat: Sandra Gottmann, Münster-Nienberge Umschlagdesign: Marc Müller-Bremer, www.rebranding.de, München Umschlagrealisation: Stephan Rönigk Satz: Kösel, Krugzell Datenbelichtung, Druck und Bindung: Kösel, Krugzell Ausstattung patentrechtlich geschützt. Kösel FD 351, Patent-Nr. 0748702 Printed in Germany Buch-ISBN 978-3-446-43296-3 ebook-isbn 978-3-446-43492-9

Inhalt Geleitwort des Herausgebers.................................. XV Vorwort.................................................... XIX 1 SQL Server 2012 die Neuerungen......................... 1 1.1 SQL Server Management Studio.................................... 1 1.2 FileTable........................................................ 2 1.2.1 Die Installation............................................ 5 1.2.2 FileTable anlegen........................................... 8 1.2.3 Berechtigungen............................................ 9 1.2.4 Transaktionen............................................. 11 1.2.5 Zugriff.................................................... 12 1.2.6 Rekursive Zugriffe.......................................... 14 1.2.7 FileTableRootPath()......................................... 16 1.2.8 GetFileNamespacePath()..................................... 16 1.2.9 FileTable-Tabellen in der Datei ermitteln....................... 17 1.2.10 ServerProperty............................................ 17 1.3 Sequenzen...................................................... 18 1.3.1 Sequenz anlegen (linear).................................... 18 1.3.2 Sequenz anlegen (zirkulär).................................. 20 1.3.3 Werte aus Sequenzen abrufen................................ 20 1.3.4 Transaktionen............................................. 21 1.3.5 Ändern und Löschen........................................ 21 1.4 Paging.......................................................... 22 1.4.1 Paging vor SQL Server 2012.................................. 22 1.4.2 Paging ab SQL Server 2012.................................. 23 1.4.3 Der Unterschied unter der Haube............................. 24 1.4.4 Das Aus für die ROW_NUMBER()-Funktion?.................... 25 1.5 Neue T-SQL-Funktionen und -Befehle................................ 25 1.5.1 Throw.................................................... 25 1.5.2 Try_Convert().............................................. 26

VI Inhalt 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 Format().................................................. 27 Concat().................................................. 28 IIF()...................................................... 28 Choose().................................................. 28 Datefromparts(), Datetime2fromparts(), Datetimefromparts(), Datetimeoffsetfromparts(), Smalldatetimefromparts(), Timefromparts()............................................ 29 1.5.8 Eomonth()................................................. 29 1.6 Analytische Funktionen........................................... 30 1.6.1 First_Value()/Last_Value()................................... 30 1.6.2 Lag()/Lead()............................................... 31 1.6.3 Cume_Dist()............................................... 33 1.6.4 Percent_Rank()............................................ 33 1.6.5 Percentile_Cont()/Percentile_Disc()........................... 34 1.7 With Result Sets-Klausel........................................... 35 1.7.1 Genau eine Ergebnismenge.................................. 35 1.7.2 Mehrere Ergebnismengen................................... 36 1.7.3 With Result Sets None...................................... 37 1.7.4 With Result Sets Undefined.................................. 38 1.8 Contained Databases.............................................. 38 1.8.1 Bestehende Datenbanken umstellen........................... 42 1.8.2 Alles an Bord?............................................. 43 1.9 Benutzerdefinierte Serverrollen..................................... 44 1.10 SQL Server Express LocalDB....................................... 46 1.10.1 Installation................................................ 48 1.10.2 Keine Konfiguration........................................ 48 1.10.3 Datenbank als Datei........................................ 48 1.10.4 Netzwerk................................................. 49 1.10.5 Das SqlLocalDB-Kommandozeilentool.......................... 49 1.11 Columnstore-Indizes.............................................. 49 1.12 Volltextsuche.................................................... 51 1.12.1 Eigenschaftensuche......................................... 51 1.12.2 Anpassbares NEAR......................................... 52 1.12.3 Semantische Suche......................................... 53 1.13 Sonstiges........................................................ 56 1.13.1 CLR-Integration.NET Framework 4.0.......................... 56 1.13.2 Standardschema für Windows-Gruppen........................ 57 1.13.3 Geometry/Geography....................................... 58 2 Microsoft SQL Server 2012................................ 59 2.1 W oraus besteht der SQL Server e igentlich?........................... 59 2.1.1 Instanzen................................................. 59 2.1.2 Datenbankmodul........................................... 62

Inhalt VII 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.1.3 SQL Server Agent.......................................... 62 2.1.4 Die Systemdatenbanken..................................... 66 2.1.5 Volltextsuche.............................................. 67 2.1.6 Analysis Services.......................................... 67 2.1.7 Reporting Services......................................... 68 2.1.8 Integration Services........................................ 68 Verwaltungsprogramme........................................... 68 2.2.1 SQL Server Management Studio.............................. 68 2.2.2 SQL Server Profiler......................................... 69 2.2.3 Datenbankoptimierungsratgeber (Database Tuning Advisor)...... 70 2.2.4 SQL Server-Konfigurationsmanager........................... 71 Die Installation................................................... 72 2.3.1 Vorbereitung.............................................. 72 2.3.2 Installation starten......................................... 73 2.3.3 Während der Installation.................................... 73 Die Dienste hinter den Kulissen..................................... 75 Sicherheit....................................................... 76 2.5.1 Ein wenig Begriffsklärung................................... 76 2.5.2 Zwei Arten der Authentifizierung............................. 77 2.5.3 Vordefinierte Anmeldungen.................................. 80 2.5.4 Vordefinierte Datenbankbenutzer............................. 80 2.5.5 Berechtigungen vergeben.................................... 80 2.5.6 Serverrollen............................................... 81 2.5.7 Datenbankrollen........................................... 82 2.5.8 Besitzer................................................... 82 2.5.9 Benutzer anlegen........................................... 82 2.5.10 Datenbankschema.......................................... 84 2.5.11 Schemasicherheit.......................................... 84 Mit Datenbanken arbeiten......................................... 86 2.6.1 Grundlegendes............................................. 86 2.6.2 Datenbank erstellen........................................ 89 2.6.3 Sichern/Wiederherstellen................................... 90 2.6.4 Löschen................................................... 93 2.6.5 Tabellen & Co.............................................. 94 CDC (Change Data Capture)........................................ 96 2.7.1 Aktivierung............................................... 98 2.7.2 DML-Bruttoänderungen..................................... 101 2.7.3 DML-Nettoänderungen...................................... 103 2.7.4 DDL-Änderungen........................................... 103 2.7.5 Deaktivierung............................................. 104 Change Tracking................................................. 104 2.8.1 Aktivierung............................................... 105 2.8.2 Abfragen.................................................. 107

VIII Inhalt 2.8.3 Änderungskontext.......................................... 109 2.8.4 Deaktivierung............................................. 110 2.9 Auditing........................................................ 110 2.9.1 Ein Überwachungsobjekt erstellen............................ 111 2.9.2 Eine Überwachungsspezifikation erstellen..................... 113 2.9.3 Auswertung............................................... 115 2.10 Volltextsuche.................................................... 116 2.10.1 Suchkatalog und Indizes einrichten........................... 118 2.10.2 Stopplisten................................................ 119 2.10.3 Thesaurus................................................. 121 2.10.4 Abfragen.................................................. 121 2.11 FileStream...................................................... 123 2.11.1 Wann setze ich FileStream ein?............................... 124 2.11.2 Aktivierung auf der SQL Server-Instanz........................ 124 2.11.3 Vorbereitung der Datenbank................................. 127 2.11.4 Vorbereitung der Tabelle.................................... 128 2.11.5 Ablage der Daten im NTFS-Dateisystem........................ 130 2.11.6 Zugriff per ADO.NET........................................ 130 2.11.7 Zugriff per FileStream API................................... 134 2.12 HierarchyID..................................................... 139 2.13 Geometry & Geography............................................ 146 2.14 Table-Valued Parameters........................................... 154 2.15 Tipps und Tricks................................................. 158 2.15.1 Benutzen der erweiterten Eigenschaften der Datenbank.......... 158 2.15.2 Welche T-SQL-Anweisungen verwendet das SQL Server M anagement Studio?................................................... 160 2.15.3 Ein T-SQL-Skript für ein Objekt oder eine Aktion erstellen........ 160 3 T-SQL.................................................. 163 3.1 SQL-Varianten................................................... 163 3.2 Anweisungen mit einem Semikolon abschließen....................... 164 3.3 T-SQL-Anweisungen entwickeln und testen........................... 166 3.3.1 Syntaktische oder deklarative Fehler.......................... 167 3.3.2 Logische Fehler im Ablauf................................... 169 3.3.3 Visual Studio 2012......................................... 170 3.4 Allgemeine Grundlagen........................................... 171 3.4.1 Kommentare.............................................. 171 3.4.2 Operatoren................................................ 171 3.4.3 Groß- und Kleinschreibung.................................. 172 3.4.4 Literale................................................... 174 3.4.5 Zeichenketten............................................. 175 3.4.6 Unicode-Zeichenketten...................................... 175 3.4.7 Zahlen mit Komma......................................... 176

Inhalt IX 3.5 3.6 3.7 3.8 3.9 3.4.8 Datum und Uhrzeit......................................... 176 3.4.9 Ungültige Zeichen und reservierte Schlüsselwörter.............. 177 3.4.10 Zeilenumbrüche und Einschübe mit Tab oder Leerzeichen........ 179 3.4.11 Ausführungsblöcke (Batches)................................ 179 3.4.12 Ausdrücke................................................ 180 3.4.13 Lexikografische Ordnung.................................... 180 3.4.14 Tabellen oder Sichten....................................... 181 3.4.15 Gruppen von T-SQL-Anweisungen............................. 182 3.4.16 Alles unsicher?............................................ 182 DML............................................................ 182 3.5.1 Daten abfragen............................................. 183 3.5.2 Daten einfügen............................................. 211 3.5.3 Daten löschen............................................. 215 3.5.4 Daten manipulieren........................................ 217 3.5.5 Die Merge-Anweisung....................................... 218 3.5.6 Allgemeine Tabellenausdrücke (CTE) für rekursive Abfragen...... 220 Data Definition Language (DDL).................................... 223 3.6.1 DDL-Anweisungen automatisch erstellen lassen................. 224 3.6.2 Datenbanken.............................................. 226 3.6.3 Tabellen.................................................. 230 3.6.4 Trigger................................................... 250 3.6.5 Sichten (Views)............................................ 257 3.6.6 Gespeicherte Prozeduren.................................... 259 3.6.7 Benutzerdefinierte Funktionen............................... 263 3.6.8 Synonyme................................................. 266 3.6.9 Benutzerdefinierte Datentypen............................... 267 3.6.10 Datenbankschemata........................................ 269 Indizes......................................................... 271 3.7.1 Clustered Index............................................ 272 3.7.2 Unique Index.............................................. 273 3.7.3 Notclustered Index......................................... 273 3.7.4 Filtered Index.............................................. 273 3.7.5 Spatial Index.............................................. 274 Transaktionen................................................... 274 Tipps und Tricks................................................. 275 3.9.1 Ermitteln der eingefügten Identitätswerte...................... 275 3.9.2 Werte in die Identitätsspalte einfügen......................... 275 3.9.3 Aktuellen Wert der Identitätsspalte auslesen und festlegen....... 277 3.9.4 In das Anwendungsprotokoll des Systems schreiben............. 278 3.9.5 Bei der Ausführung eine Pause einlegen....................... 278 3.9.6 Einschränkungen deaktivieren............................... 279

X Inhalt 4 SQL Server 2012 mit ADO.NET............................. 281 4.1 Übersicht über die Klassen........................................ 281 4.2 Die SqlConnection-Klasse.......................................... 283 4.2.1 Wichtige Methoden und Eigenschaften........................ 284 4.2.2 Zustand der Verbindung..................................... 285 4.2.3 Ereignisse................................................. 286 4.2.4 Verbindungs-Pooling (Connection Pooling)..................... 288 4.2.5 Verbindungszeichenfolge (Connection String)................... 289 4.2.6 Statistische Werte abrufen................................... 296 4.3 Die SqlConnectionStringBuilder-Klasse.............................. 298 4.3.1 Wichtige Methoden und Eigenschaften........................ 298 4.3.2 Praktischer Einsatz......................................... 300 4.4 Die SqlCommand-Klasse........................................... 302 4.4.1 Wichtige Methoden und Eigenschaften........................ 302 4.4.2 ExecuteNonQuery-Methode.................................. 304 4.4.3 ExecuteScalar-Methode...................................... 306 4.4.4 ExecuteReader-Methode..................................... 306 4.4.5 ExecuteXmlReader-Methode................................. 308 4.4.6 SqlCommand in Verbindung mit SqlDataAdapter................ 309 4.4.7 Parameter verwenden....................................... 310 4.4.8 Ereignisse................................................. 312 4.4.9 Praktischer Einsatz......................................... 313 4.5 Die SqlParameter-Klasse........................................... 318 4.5.1 Wichtige Methoden und Eigenschaften........................ 320 4.5.2 Übergaberichtung des Parameters............................ 321 4.5.3 Praktischer Einsatz......................................... 321 4.5.4 Parameter für mehrere Abfragen wieder verwenden............. 322 4.6 Die SqlDependency-Klasse......................................... 325 4.6.1 Wichtige Methoden und Eigenschaften........................ 327 4.6.2 Ereignisse................................................. 327 4.6.3 Praktischer Einsatz......................................... 331 4.7 Die SqlDataReader-Klasse.......................................... 333 4.7.1 Wichtige Methoden und Eigenschaften........................ 334 4.8 Die XmlReader-Klasse............................................. 339 4.8.1 Wichtige Methoden und Eigenschaften........................ 340 4.9 Die SqlDataAdapter-Klasse......................................... 342 4.10 Die SqlCommandBuilder-Klasse.................................... 342 4.11 Die SqlClientPermission-Klasse..................................... 342 4.11.1 Wichtige Methoden und Eigenschaften........................ 343 4.11.2 Praktischer Einsatz......................................... 344 4.12 Die SqlBulkCopy-Klasse........................................... 345 4.12.1 Wichtige Methoden und Eigenschaften........................ 346 4.12.2 Optionen für das Kopieren................................... 347

Inhalt XI 4.12.3 Zuordnung von Quell- und Zielspalten......................... 348 4.12.4 Ereignisse................................................. 349 4.12.5 Praktischer Einsatz......................................... 350 4.13 Die SqlTransaction-Klasse......................................... 353 4.13.1 Wichtige Methoden und Eigenschaften........................ 356 4.13.2 Isolationsgrad............................................. 356 4.13.3 Praktischer Einsatz......................................... 357 4.14 Die SqlException- und SqlError-Klasse............................... 361 4.14.1 Wichtige Eigenschaften der SqlException-Klasse................ 362 4.14.2 Die SqlError-Klasse......................................... 362 4.14.3 Alle relevanten Informationen im Fehlerfall auswerten........... 363 4.15 MARS (Multiple Active Result Sets)................................. 364 4.16 Asynchrone Ausführung........................................... 364 4.16.1 Die IAsyncResult-Schnittstelle................................ 364 4.16.2 BackgroundWorker-Komponente.............................. 367 4.16.3 Thread.................................................... 367 4.17 Tipps und Tricks................................................. 369 4.17.1 Das Schema einer Tabelle abfragen............................ 369 4.17.2 Das Kennwort über SqlConnection.ConnectionString erhalten..... 371 4.17.3 Das Kennwort bei der SQL Server-Authentifizierung ändern....... 372 4.17.4 Feststellen, warum eine SQL Server-Anmeldung fehlschlägt....... 372 4.17.5 Verbindungs-Pool per Code leeren............................ 373 5 LINQ................................................... 375 5.1 LINQ-Abfragen................................................... 378 5.1.1 Klassen/Tabellen für die Beispiele............................ 378 5.1.2 LINQ-Operatoren........................................... 380 5.1.3 Sequenzen................................................ 384 5.1.4 Verzögerte Ausführung...................................... 384 5.1.5 Projektionsoperatoren....................................... 385 5.1.6 Filteroperatoren............................................ 386 5.1.7 Sortieroperatoren.......................................... 388 5.1.8 Gruppierungsoperatoren.................................... 390 5.1.9 Join-Operatoren............................................ 391 5.1.10 Set-Operatoren............................................. 395 5.1.11 Aggregat-Operatoren........................................ 397 5.1.12 Generierungsoperatoren..................................... 401 5.1.13 Quantifizierungsoperatoren.................................. 403 5.1.14 Aufteilungsopertoren....................................... 405 5.1.15 Elementoperatoren......................................... 407 5.1.16 Konvertierungsoperatoren................................... 409 5.1.17 Sonstige Operatoren........................................ 413 5.2 LINQ to SQL..................................................... 415 5.2.1 Der Datenkontext........................................... 416

XII Inhalt 5.2.2 Entitäten-Klassen.......................................... 418 5.2.3 Abfragen.................................................. 433 5.2.4 Abfragen protokollieren..................................... 444 5.3 LINQ to DataSets................................................. 445 5.3.1 Daten laden und abfragen................................... 445 5.3.2 Daten ändern und speichern................................. 447 5.3.3 Typisierte DataSets......................................... 448 5.4 Tipps und Tricks................................................. 449 5.4.1 Bei LINQ to SQL statt null einen Fallback-Wert erhalten.......... 449 6 6.1 6.2 6.3 6.4 6.5 ADO.NET Entity Framework................................ 451 Was ist ein O/R-Mapper?........................................... 451 Architektur des ADO.NET Entity F ramework.......................... 453 Der grafische Designer............................................ 454 Modellbrowser................................................... 455 Das Entitätenmodell.............................................. 457 6.5.1 Automatische Codegenerierung............................... 458 6.5.2 Entitätenmodell erstellen und bearbeiten....................... 458 6.5.3 Welcher Ansatz ist der richtige?.............................. 459 6.5.4 Verwendung im gleichen Projekt............................. 467 6.5.5 Verwendung in einem anderen Projekt........................ 468 6.6 Grundlegende Bestandteile des E ntitätenmodells...................... 468 6.6.1 Objektkontext.............................................. 468 6.6.2 Entitäten.................................................. 469 6.6.3 Primärschlüssel............................................ 481 6.6.4 Beziehungen.............................................. 484 6.6.5 Enumerationstyp........................................... 490 6.6.6 Vererbung................................................. 493 6.6.7 Fremdschlüsseleinschränkung............................... 496 6.6.8 Diagramme................................................ 497 6.7 Objektkontext.................................................... 499 6.7.1 Objektkontext erzeugen..................................... 500 6.7.2 Abfragen ausführen und Änderungen speichern................ 500 6.7.3 Entität erstellen............................................ 501 6.7.4 Entität löschen............................................. 502 6.7.5 Datenbank erstellen/löschen................................. 502 6.8 ObjectStateManager.............................................. 503 6.8.1 Speichern in der Persistenzschicht............................ 504 6.8.2 Attach/Detach............................................. 504 6.9 Praktischer Entwurf eines Entitäten modells.......................... 504 6.10 Metadata Workspace.............................................. 506 6.10.1 Konzeptionelles Modell...................................... 507 6.10.2 Mapping Specification Language.............................. 507

Inhalt XIII 6.10.3 Physikalisches Modell....................................... 508 6.11 Prozeduren/Funktionen........................................... 509 6.12 Mappings....................................................... 510 6.12.1 Tabellenmappings.......................................... 511 6.12.2 Funktionsmappings........................................ 514 6.13 Lazy Loading.................................................... 515 6.14 Parallelitätsverletzungen.......................................... 516 6.15 Datenanbieter.................................................... 518 6.15.1 LINQ..................................................... 518 6.15.2 Datenmanipulation......................................... 519 6.16 Transaktionen................................................... 519 7 ADO.NET Entity Framework Vertiefung..................... 521 7.1 G enereller Aufbau der Designer-Code-Klassen........................ 521 7.1.1 Objektkontext.............................................. 522 7.1.2 Entitäten.................................................. 524 7.1.3 Komplexe Typen........................................... 527 7.1.4 Enumerationstypen......................................... 528 7.2 Basisklassen..................................................... 528 7.2.1 ComplexObject............................................. 528 7.2.2 EntityObject............................................... 529 7.2.3 ObjectContext.............................................. 529 7.2.4 Attribute.................................................. 530 7.3 POCOs (Plain Old CLR Objects)..................................... 532 7.3.1 Das Problem............................................... 532 7.3.2 Die Lösung................................................ 533 7.4 Code Only....................................................... 536 7.4.1 Entitätenmodell............................................ 537 7.4.2 Code Only im Einsatz....................................... 539 7.5 Selftracking Entities.............................................. 541 7.5.1 Das Problem............................................... 542 7.5.2 Die Lösung................................................ 542 7.5.3 Der praktische Einsatz...................................... 546 7.6 Alternativen zu Visual Studio bei der Codegenerierung................. 548 7.6.1 Per Befehlszeilentool........................................ 548 7.6.2 Per Code.................................................. 551 7.7 T4-Vorlagen..................................................... 552 7.7.1 Einsatzgebiete............................................. 553 7.7.2 Funktionsweise............................................ 553 Index...................................................... 557

Geleitwort des Herausgebers Liebe Leserinnen, liebe Leser, das.net Framework ist inzwischen mehr als zehn Jahre alt, und man kam ihm Reife nicht nur altersbedingt, sondern vor allem auch aus fachlichen Gründen bescheinigen. Das Besondere an.net ist, dass es immer mehr Anwendungsarten gibt, die sich mit der gleichen Sprachsyntax, den gleichen Bibliotheken und den gleichen Werkzeugen erstellen lassen. Zu Desktop- und StandardWeb-Applikationen haben sich inzwischen Multimedia- und Office-Anwendungen sowie Rich Internet Applications und Apps gesellt. Und auch auf der Serverseite gibt es zahlreiche Möglichkeiten für den Einsatz von.net, vom Microsoft SQL Server über Biztalk bis hin zu SharePoint. Mit der Version 4.5 liefert Microsoft wesentliche Verbesserungen für zahlreiche Bausteine (z. B. für das ADO.NET Entity Framework) und ergänzt hilfreiche neue Klassen. Anlässlich von.net 4.5 aktualisieren wir natürlich auch wieder die erfolgreiche Buchreihe.NET-Bibliothek, die ich für den Carl Hanser Verlag als Herausgeber betreue. Die Fach bücher dieser Reihe liefern fundiertes Wissen zu zentralen Bausteinen der Klassenbibliothek im.net Framework. Die Reihe zeichnet sich durch prägnant gehaltene Bücher aus, die das elementare Wissen zu einem Fachgebiet für den professionellen Entwickler aufbereiten. Ein weiteres Merkmal der Reihe sind die Autoren, die seit vielen Jahren mit.nettechnologien arbeiten und ihre umfangreiche Praxiserfahrung aus.net-projekten in die Bücher einfließen lassen. Thorsten Kansy ist ein erfahrener Datenbankexperte aus unserem Netzwerk. Der vorliegende Band zum Thema Datenbankzugriff wurde in der dritten Auflage komplett über arbeitet und berücksichtigt neben.net 4.5 auch den Microsoft SQL Server 2012. Neben den klassischen ADO.NET-Datenzugriffen mit Command und DataReader berücksichtigt die Neuauflage auch verstärkt den objektrelationalen Mapper ADO.NET Entity Framework, den Microsoft als Datenzugriffsweg für neue Anwendungen empfiehlt. Das Buch stellt die Konzepte von SQL Server 2012, ADO.NET und Entity Framework vor, liefert aber auch viele Tabellen zum Nachschlagen der wichtigsten Details. Ich wünsche Ihnen, dass dieses Buch zu Ihrem Projekterfolg beitragen kann. Essen, im September 2012 Dr. Holger Schwichtenberg www.it-visions.de

I told you, I told you, I told you: I was one of those! Für Ursula Danke für alle Liebe und Geduld

Vorwort Willkommen! Schön, dass Sie sich für dieses Buch entschieden haben. Es ist nun schon das Dritte, das ich zu diesem Thema schreiben durfte. Der Erfolg der Vorgänger hat es möglich gemacht vielen Dank dafür. Dieses Buch wird Ihnen helfen, sich in der Welt der Datenbankprogrammierung mit.net 4.5 und SQL Server 2012 zurechtzufinden. Es wurde mit großer Sorgfalt geschrieben. Ich habe versucht, meine Erfahrung aus vielen Jahren der Entwicklung mit.net und anderen Programmiersprachen einfließen zu lassen. Hilfreich waren dabei auch die unzähligen Schulungen und Gespräche mit Entwicklern. Es ist das Buch eines Programmierers für Programmierer. Ich hoffe, dass sich dies positiv in diesem Werk bemerkbar macht. Für wen ist dieses Buch? Dieses Entwicklerbuch richtet sich sowohl an den Anfänger, der bereits ein wenig Erfahrung in der C#-Programmierung mitbringt, als auch an den Profi, der auf der Höhe der Zeit bleiben möchte. In ein paar Stichworte gefasst, sollte der optimale Leser die folgenden Eigenschaften mitbringen: Interesse und Spaß an der Technik und Programmierung Neugier und Geduld Kenntnisse in C# einige Kenntnisse in SQL und relationalen Datenbanken, vielleicht sogar SQL Server Und mehr braucht es gar nicht alles Weitere erfahren Sie in diesem Buch. Warum dieses Buch? Dieses Buch bringt Ihnen ganz gezielt die Grundlagen und Techniken rund um die Datenbankentwicklung mit C#,.NET 4.5 und SQL Server 2012 näher. Es beschreibt die Neuerungen, die SQL Server 2012 und Visual Studio 2012 im Bereich Datenbankentwicklung mit sich bringen, und zeigt in vielen Beispielen, wie verschiedenste Herausforderungen gemeistert werden können. Bei all dem konzentriert es sich auf die genannten Themen andere Programmiersprachen oder Datenbankserver werden nur ganz am Rande erwähnt, damit mehr wertvoller Platz für das Kernthema zur Verfügung steht.