dummies
 

Suchen und Finden

Titel

Autor/Verlag

Inhaltsverzeichnis

Nur ebooks mit Firmenlizenz anzeigen:

 

ADO.NET - Grundlagen und Profiwissen

Detlev Wanzke, Lothar Wanzke

 

Verlag Carl Hanser Fachbuchverlag, 2006

ISBN 9783446405196 , 799 Seiten

2. Auflage

Format PDF, OL

Kopierschutz Wasserzeichen

Geräte

49,90 EUR

Für Firmen: Nutzung über Internet und Intranet (ab 2 Exemplaren) freigegeben

Derzeit können über den Shop maximal 500 Exemplare bestellt werden. Benötigen Sie mehr Exemplare, nehmen Sie bitte Kontakt mit uns auf.


 

Inhalt

4

Vorwort

16

An wen richtet sich das Buch?

16

Welche .NET-Sprache wird verwendet?

16

Installation der Beispiele

17

Installation der SQL Server-Beispieldatenbank

17

Die Website zum Buch

17

1 ADO.Net-Grundlagen

18

1.1 Was ist ADO.Net?

19

1.2 Architektur von ADO.Net

20

1.3 Komponentenübersicht

22

1.3.1 .NET-Datenprovider

22

1.3.2 DataSet

24

1.3.3 Datenbindung

25

1.3.4 Steuerelemente

26

1.4 Zusammenspiel der ADO.Net-Komponenten

27

1.4.1 Beispielanwendung mit DataReader

27

1.4.2 Beispielanwendung mit DataAdapter

35

1.5 Zusammenfassung

42

2 Die Datenbanksprache SQL

44

2.1 Was ist SQL?

45

2.2 SQL im Einsatz

46

2.2.1 SQL-Editoren

46

2.2.2 Allgemeine SQL-Regeln

48

2.3 DQL – Datenabfragen mit SELECT-Anweisungen

50

2.3.1 Die Syntax der SELECT- Anweisung

50

2.3.2 Einfache SELECT-Anweisungen

52

2.3.3 Verknüpfen mehrerer Tabellen

54

2.3.4 Die WHERE-Bedingung

59

2.3.5 Einschränken der Ergebnismenge

64

2.3.6 Aggregatfunktionen

66

2.3.7 Gruppieren von Datensätzen

68

2.3.8 Arbeiten mit Unterabfragen

70

2.4 DML – Datenmanipulation

73

2.4.1 Eine neue Tabelle erstellen mit SELECT INTO

74

2.4.2 Datensätze einfügen mit INSERT

75

2.4.3 Datensätze ändern mit UPDATE

77

2.4.4 Datensätze löschen mit DELETE

79

2.5 DDL – Datendefinition

80

2.5.1 Generieren eines Änderungsskripts über Visual Studio

80

2.5.2 Skript über SQL Server Management Studio generieren

82

2.5.3 Verwenden von DDL im Code

83

2.6 Zusammenfassung

84

3 Visual Studio.NET-Überblick

86

3.1 Einstelloptionen im Visual Studio.NET

87

3.2 Der Server-Explorer

89

3.2.1 Verbindung mit einer Datenbank herstellen

90

3.2.2 Arbeiten mit Tabellen

94

3.2.3 Arbeiten mit Ansichten

100

3.2.4 Gespeicherte Prozeduren

101

3.3 Das Datenquellenfenster

102

3.3.1 Welche Datenquellen kann man anlegen?

104

3.3.2 Arbeiten mit Datenquellen

105

3.4 Zusammenfassung

106

4 Visual Studio.NET und die Datenquellen

108

4.1 Erstellen der Beispielanwendung

109

4.2 Verwenden eines DataSets als Datenquelle

112

4.2.1 Datenquelle anlegen

113

4.2.2 DataSet in Formular einbinden

117

4.3 Verwenden einer Klasse als Datenquelle

122

4.3.1 Klasse implementieren

122

4.3.2 Klasse dem Datenquellenfenster hinzufügen

123

4.3.3 Klasse in Formular einbinden

125

4.3.4 Analyse des Ergebnisses

127

4.3.5 Anzeigen des Tabelleninhalts

128

4.3.6 Speichern und Laden von Objektdaten

130

4.4 Fazit

134

5 Die Connection-Klasse

136

5.1 Das Beispielprogramm

138

5.2 Verbindung zur Datenbank herstellen

139

5.2.1 Verbindung zur SQL Server-Datenbank herstellen

140

5.2.2 Verbindung zu MS Access-Datenbank herstellen

142

5.3 Eigenschaften

143

5.3.1 Die ConnectionString-Eigenschaft

143

5.3.2 Die ConnectionTimeout-Eigenschaft

144

5.3.3 Die State-Eigenschaft

145

5.3.4 Weitere Eigenschaften

145

5.4 Methoden

148

5.4.1 Die Open-Methode

149

5.4.2 Die Close-Methode

149

5.4.3 Die BeginTransaction-Methode

149

5.4.4 Die CreateCommand-Methode

150

5.4.5 Weitere Methoden

151

5.5 Verbindungspooling

153

5.6 Metadaten

155

5.6.1 Metadatenauflistungen

155

5.6.2 Metadatenauflistung laden

156

5.6.3 Metadaten zu den Metadaten

157

5.7 Zusammenfassung

157

6 Die Command-Klasse

160

6.1 Objektmodell des Commands

161

6.2 Das Beispielprogramm

162

6.3 Erzeugen des Command-Objekts

164

6.4 Command ausführen

166

6.5 Parameter

170

6.5.1 Parameter im SqlCommand

170

6.5.2 Parameter im OleDbCommand-Objekt

170

6.5.3 Direction-Eigenschaft der Parameter

171

6.5.4 Parameter bei Verwendung des DbCommand

174

6.5.5 Parameter durch String-Variablen ersetzen

176

6.6 Eigenschaften

177

6.6.1 CommandType-Eigenschaft

177

6.6.2 CommandText-Eigenschaft

178

6.6.3 Weitere Eigenschaften

178

6.7 Methoden zur Ausführung des Commands

180

6.7.1 ExecuteScalar-Methode

180

6.7.2 ExecuteNonQuery-Methode

181

6.7.3 ExecuteReader-Methode

182

6.7.4 ExecuteXMLReader-Methode

183

6.8 Asynchrone Ausführung des SqlCommands

184

6.8.1 Der „async“-Parameter im ConnectionString

185

6.8.2 Rückmeldung

185

6.8.3 Anwendungsbeispiel

186

6.9 Weitere Methoden des Commands

188

6.10 Anwendungsbeispiele für die Command-Klasse

190

6.10.1 Das Formular in der Beispielanwendung

190

6.10.2 Neuen Datensatz anlegen

192

6.10.3 Datenänderungen speichern

193

6.10.4 Datensatz löschen

194

6.11 Zusammenfassung

197

7 Die DataReader-Klasse

198

7.1 Verwendung

199

7.2 Objektmodell des DataReaders

201

7.3 Das Beispielprogramm

201

7.4 Erzeugen des DataReaders

203

7.5 Verwendung des DataReaders

204

7.6 Eigenschaften

205

7.6.1 Item-Eigenschaft bzw. Indexer

205

7.6.2 Weitere Eigenschaften

206

7.7 Methoden

208

7.7.1 Die Read-Methode

208

7.7.2 Die NextResult-Methode

209

7.7.3 Get-Methoden zum Auslesen der Spaltenwerte

211

7.7.4 Methoden zum Auslesen von Metadaten

213

7.7.5 Die GetSchemaTable-Methode

215

7.7.6 Weitere Methoden

217

7.8 Zusammenfassung

218

8 Die DataAdapter-Klasse

220

8.1 Lokaler Datenspeicher und DataAdapter

221

8.2 DataAdapter innerhalb des .Net Data Providers

222

8.3 Objektmodell des DataAdapters

225

8.4 Das Beispielprogramm

226

8.5 Erzeugen des DataAdapters

228

8.5.1 Erzeugen des Adapters über den Konstruktor

229

8.5.2 DbDataFactory und DbDataAdapter

230

8.6 Verwendung des DataAdapter-Objekts

232

8.6.1 DataAdapter und Commands anlegen

233

8.6.2 Daten laden und anzeigen

235

8.6.3 Änderungen in Datenbank zurückspeichern

236

8.7 CommandBuilder und DataAdapter

237

8.7.1 CommandBuilder verwenden

237

8.7.2 ConflictOption-Eigenschaft des CommandBuilders

239

8.8 Eigenschaften des DataAdapters

242

8.8.1 AcceptChanges...-Eigenschaften

242

8.8.2 Command-Eigenschaften

243

8.8.3 ContinueUpdateOnError-Eigenschaft

243

8.8.4 FillLoadOption-Eigenschaft

245

8.8.5 MissingSchemaAction-Eigenschaft

246

8.8.6 ReturnProviderSpecificTypes-Eigenschaft

247

8.8.7 TableMappings-Eigenschaft

247

8.8.8 MissingMappingAction-Eigenschaft

249

8.8.9 UpdateBatchSize-Eigenschaft

251

8.9 Methoden des DataAdapters

251

8.9.1 Die Fill-Methode

251

8.9.2 Die FillSchema-Methode

254

8.9.3 GetFillParameters-Methode

255

8.9.4 Die Update-Methode

255

8.10 Ereignisse

259

8.10.1 RowUpdating-Ereignis

259

8.10.2 RowUpdated-Ereignis

262

8.10.3 FillError-Ereignis

263

8.11 Zusammenfassung

263

9 Die Transaction-Klasse

264

9.1 Was ist eine Transaktion?

265

9.2 Objektmodell der Transaction

267

9.3 Das Beispielprogramm

268

9.4 Erzeugen des Transaction-Objekts

270

9.5 Verwendung der Transaction-Klasse

270

9.5.1 Verwendung mit Commands

270

9.5.2 Verwendung mit einem DataAdapter-Objekt

273

9.6 Eigenschaften

276

9.6.1 Die Connection-Eigenschaft

276

9.6.2 Die IsolationLevel-Eigenschaft

276

9.7 Methoden

280

9.7.1 Die Commit-Methode

280

9.7.2 Die Rollback-Methode

281

9.7.3 Weitere Methoden

281

9.8 Zusammenfassung

282

10 Die SqlBulkCopy-Klasse

284

10.1 Prinzip der SqlBulkCopy- Klasse

285

10.2 Erzeugen des SqlBulkCopy-Objekts

286

10.3 Die SqlBulkCopyOptions

287

10.4 Eigenschaften

288

10.4.1 BatchSize-Eigenschaft

288

10.4.2 BulkCopyTimeOut-Eigenschaft

288

10.4.3 ColumnMappings-Eigenschaft

289

10.4.4 DestinationTableName-Eigenschaft

289

10.4.5 NotifyAfter-Eigenschaft

290

10.5 WriteToServer-Methode

291

10.6 Das Beispielprogramm

292

10.6.1 Benutzeroberfläche

292

10.6.2 Programmaufbau

294

10.7 Verwendung der SqlBulkCopy-Klasse

296

10.7.1 Import einer DataTable ohne Transaktion

296

10.7.2 Import eines DataRow-Arrays mit interner Transaktion

298

10.7.3 Import eines DataReaders mit externer Transaktion

300

10.7.4 Vergleich mit dem DataAdapter

302

10.8 Zusammenfassung

303

11 Die DataTable-Klasse

304

11.1 Objektmodell der DataTable

305

11.2 Das Beispielprogramm

307

11.3 Erzeugen eines DataTable-Objekts

309

11.4 Verwendung des DataTable-Objekts

309

11.5 Rows- Auflistung

311

11.5.1 Verwendung der Rows-Auflistung

312

11.5.2 Die Count-Eigenschaft

313

11.5.3 Die Add-Methode

313

11.5.4 Die Contains-Methode

315

11.5.5 Die Find-Methode

316

11.5.6 Die Remove-Methode

317

11.5.7 Die Clear-Methode

319

11.6 Columns- Auflistung

319

11.6.1 Die Contains-Methode

320

11.6.2 Die Add- und Remove-Methode

320

11.6.3 Die Clear-Methode

322

11.6.4 Die IndexOf-Methode

322

11.7 Eigenschaften der DataTable

323

11.7.1 Auflistungen

323

11.7.2 Die PrimaryKey-Eigenschaft

325

11.7.3 DataSet

326

11.7.4 Die DefaultView-Eigenschaft

327

11.7.5 Weitere Eigenschaften

328

11.8 Methoden der DataTable

331

11.8.1 NewRow-Methode

331

11.8.2 ImportRow-Methode

332

11.8.3 LoadDataRow-Methode

332

11.8.4 ReadXml-, WriteXml-Methode

333

11.8.5 Accept- und RejectChanges-Methode

336

11.8.6 Compute-Methode

336

11.8.7 Select-Methode

338

11.8.8 Weitere Methoden

339

11.9 Ereignisse der DataTable

342

11.9.1 Das RowChanging-Ereignis

343

11.9.2 Weitere Ereignisse

344

11.10 Anwendungsfälle für die DataTable

345

11.10.1 Kalkulierte Spalten erzeugen

345

11.10.2 AutoIncrement-Spalten erzeugen

349

11.10.3 Datenzeilen auslesen

349

11.10.4 Spaltenwerte auslesen

351

11.10.5 DataTable an Steuerelement in Formularen binden

352

11.11 Zusammenfassung

358

12 Die DataRow-Klasse

360

12.1 Objektmodell der DataRow

361

12.2 Das Beispielprogramm

363

12.3 Erzeugen eines DataRow-Objekts

364

12.4 Spaltenwerte auslesen und setzen

365

12.5 Versionen eines DataRow-Objekts

367

12.6 Eigenschaften

370

12.6.1 Die RowState-Eigenschaft

370

12.6.2 Weitere Eigenschaften

371

12.7 Methoden

373

12.7.1 Die AcceptChanges- und RejectChanges-Methode

373

12.7.2 Die BeginEdit-, CancelEdit-, EndEdit-Methode

374

12.7.3 Die HasVersion-Methode

375

12.7.4 Die GetChildRows- und GetParentRow-Methode

376

12.7.5 Weitere Methoden

378

12.8 Versionen und die DataTable-Ereignisse

382

12.8.1 ColumnChanged-Ereignis

382

12.8.2 Weitere Ereignisse

388

12.9 Zusammenfassung

389

13 Die DataView-Klasse

390

13.1 Objektmodell der DataView

391

13.2 Das Beispielprogramm

392

13.3 Erzeugen eines DataView-Objekts

394

13.4 Daten lesen und schreiben

394

13.5 Eigenschaften

396

13.5.1 Die AllowDelete-, AllowEdit- und AllowNew-Eigenschaft

396

13.5.2 Die RowFilter-Eigenschaft

399

13.5.3 Die RowStateFilter-Eigenschaft

400

13.5.4 Die Sort-Eigenschaft

402

13.5.5 Weitere Eigenschaften

403

13.6 Methoden

405

13.6.1 Die AddNew-Methode

405

13.6.2 Die Find- und FindRows-Methode

407

13.6.3 Delete-Methode

408

13.6.4 ToTable-Methode

409

13.7 ListChanged-Ereignis

410

13.8 Die DataRowView-Klasse

411

13.8.1 Objektmodell der DataRowView

411

13.8.2 Eigenschaften der DataRowView

411

13.8.3 Methoden der DataRowView

413

13.9 Datenanbindung des DataView-Objekts

414

13.10 Datenanbindung des DataRowView-Objekts

418

13.11 Zusammenfassung

419

14 Die DataSet-Klasse

420

14.1 Objektmodell der DataSet-Klasse

422

14.2 Das Beispielprogramm

423

14.3 Erzeugen eines DataSet-Objekts

425

14.4 Eigenschaften des DataSets

426

14.5 Methoden des DataSets

429

14.6 Tabellen hinzufügen

434

14.6.1 Add-Methode der Tables-Auflistung

435

14.6.2 Fill-Methode des DataAdapters

436

14.7 Relationen

436

14.7.1 Was sind Relationen?

437

14.7.2 Objektmodell der DataRelation-Klasse

438

14.7.3 Eigenschaften der DataRelation-Klasse

440

14.7.4 Relationen erzeugen

441

14.7.5 Über Relationen auf Daten zugreifen

445

14.7.6 Objektmodell der ForeignKeyConstraint-Klasse

447

14.7.7 Eigenschaften der ForeignKeyConstraint-Klasse

447

14.8 DataSet mit Daten füllen

449

14.8.1 Über DataAdapter

449

14.8.2 ReadXml-Methode

450

14.9 Daten speichern

452

14.9.1 Über DataAdapter

452

14.9.2 WriteXml-Methode

453

14.10 Das abgeleitete Schema

455

14.10.1 Die Nested-Eigenschaft der DataRelation-Klasse

456

14.10.2 Das Schema

460

14.11 Serialisierung im Binärformat

462

14.12 Zusammenfassung

465

15 Datenbindung

468

15.1 Arten der Datenbindung

469

15.2 Klassen der Datenanbindung

470

15.3 Die Synchronisierung

473

15.4 Die BindingSource Klasse

476

15.4.1 BindingSource erzeugen

477

15.4.2 Datenbindungen anlegen

477

15.4.3 Die DataSource- und List-Eigenschaft

480

15.4.4 Die Position-Eigenschaft

481

15.4.5 Die Current-Eigenschaft

482

15.4.6 Weitere Eigenschaften

483

15.4.7 Methoden der BindingSource

484

15.4.8 Ereignisse der BindingSource

486

15.5 Die Binding-Klasse

489

15.5.1 Anlegen der Bindung

489

15.5.2 Eigenschaften der Binding-Klasse

490

15.5.3 Die ReadValue- und WriteValue-Methode

495

15.5.4 Das Format- und Parse-Ereignis

495

15.6 Datenquellen

496

15.7 Das Beispielprogramm

501

15.8 Standardprobleme

503

15.8.1 Angezeigte Daten und Funktionen

504

15.8.2 Entwurf des lokalen Datenspeichers

507

15.8.3 Lokale Datenbank erzeugen und füllen

509

15.8.4 Datenbindung

513

15.8.5 Datennavigation und Synchronisation

520

15.8.6 Filtern der lokalen Daten

521

15.8.7 Vorgabewerte setzen

524

15.8.8 Änderungen verwerfen

526

15.8.9 Änderungen speichern

531

15.9 Zusammenfassung

536

16 Typisiertes DataSet

538

16.1 Was ist ein typisiertes DataSet?

539

16.1.1 Logischer Aufbau

539

16.1.2 Typisierte Klassen

540

16.1.3 Vor- und Nachteile des typisierten DataSets

542

16.2 Erweiterungen der DataSet-Klassen

545

16.2.1 Erweiterung der DataSet-Klasse

545

16.2.2 Erweiterungen der DataTable-Klasse

545

16.2.3 Erweiterungen der DataRow-Klasse

547

16.3 Der TableAdapter

548

16.4 Das Beispielprogramm

551

16.5 Anlegen des typisierten DataSets

553

16.5.1 Typisiertes DataSet über Datenquellen-Fenster anlegen

554

16.5.2 Typisiertes DataSet direkt dem Projekt hinzufügen

556

16.5.3 Dateien des typisierten DataSets

557

16.6 Entwerfen des DataSets mit dem Editor

558

16.7 Modifizieren der TableAdapter

562

16.7.1 Der Abfrage-Generator

562

16.7.2 Konfigurieren des TableAdapters

564

16.8 Verwenden des typisierten DataSets im Formular

566

16.8.1 Instanzen der Objekte für die Bindung anlegen

567

16.8.2 Binden der BindingSources an die Datenquelle

568

16.8.3 Fehler im Formulardesigner

570

16.8.4 TableAdapter hinzufügen und Daten laden

571

16.8.5 Steuerelemente an BindingSources binden

573

16.9 Nachträgliche Änderungen am DataSet

578

16.9.1 Änderungen an der Datenbank

578

16.9.2 Änderungen am typisierten DataSet

580

16.10 Ein Blick auf den Programmcode

581

16.11 Fazit

584

17 XML und XML-Schemata

586

17.1 Das Beispielformular

587

17.2 XML-Grundlagen

589

17.3 XML-Syntax

592

17.4 XML-Elemente und Typen

595

17.4.1 XML-Deklaration

595

17.4.2 Element

595

17.4.3 Attribute

596

17.4.4 Typen

598

17.4.5 Benannte und unbenannte Typen

599

17.4.6 Namespace

602

17.5 DataSet verwendet XML-Daten

604

17.5.1 Der Schema-Editor

604

17.5.2 Anlegen des Schemas über den DataSet-Editor

605

17.5.3 Laden des Schemas und der XML-Datei

608

17.5.4 Benutzereinstellungen in XML-Datei speichern

610

17.5.5 Lesen und schreiben der Benutzereinstellungen

611

17.5.6 Komplexe Benutzereinstellung

613

17.6 XML-Daten verwenden ein DataSet

617

17.7 Datenaustausch über DiffGrams

624

17.7.1 DiffGram-Format

625

17.7.2 DataSet als DiffGram speichern

629

17.7.3 DataSet von DiffGram füllen

630

17.8 SQL Server und FOR XML- Abfragen

631

17.8.1 Anzeigen der XML-Ausgabe

631

17.8.2 FOR XML RAW

633

17.8.3 FOR XML AUTO

634

17.8.4 FOR XML EXPLICIT

639

17.8.5 FOR XML PATH

642

17.8.6 Verwendung von FOR XML mit XMLReader

646

17.8.7 Verwendung von FOR XML mit DataSets

649

17.9 Zusammenfassung

653

18 Die Webdienste

654

18.1 Prinzip des Webdienstes

655

18.2 Die Infrastruktur für Webdienste

658

18.2.1 Webdienstverzeichnisse

658

18.2.2 Homepage des Dienstanbieters

660

18.2.3 Web Service Description Language

661

18.3 Webdienst erstellen

661

18.3.1 Neues Projekt anlegen

661

18.3.2 Funktionalität implementieren

664

18.3.3 Testen des Webdienstes

670

18.4 Webdienstclient erstellen

674

18.4.1 Projekt erstellen

674

18.4.2 Funktionalität implementieren

677

18.4.3 Testen des Webdienstclients

681

18.5 Asynchroner Methodenaufruf

682

18.5.1 Grundlagen

683

18.5.2 Der asynchrone Methodenaufruf

683

18.6 Datenübertragung im Binärformat

687

18.7 Zusammenfassung

691

19 ASP-Grundlagen

692

19.1 Einführung in ASP.NET

693

19.2 Installation von ASP.NET

696

19.2.1 Software-Anforderungen

697

19.2.2 Installation des IIS

697

19.2.3 ASP.NET dem IIS bekannt machen

703

19.2.4 Beispielanwendungen

707

19.3 Die erste ASP.NET- Anwendung

710

19.3.1 Erstellen einer neuen Webanwendung

711

19.3.2 Hinzufügen der Controls

715

19.3.3 Dokumentgliederung

720

19.3.4 Hinzufügen des Codes für die Buttons

722

19.4 Der Namespace System.Web

723

19.5 Das GridView-Control

726

19.5.1 Erstellen der Anwendung

726

19.5.2 Hinzufügen einer Datenquelle

728

19.5.3 Anbinden des GridViews an eine Access-Datenbank

729

19.5.4 Blättern, Sortieren und Layout

732

19.5.5 Ändern von Datensätzen

735

19.6 Zusammenfassung

738

20 Sicherheit von Webapplikationen

740

20.1 Grundbegriffe

741

20.2 Ein einfaches Beispiel

745

20.2.1 Die fertige Anwendung

745

20.2.2 Erstellen einer neuen Anwendung

746

20.2.3 Erstellen der Benutzeroberfläche

746

20.2.4 Der Code

749

20.3 Wahl der Sicherheitsstrategie

753

20.3.1 Änderung der ASPNET-Berechtigungen

754

20.3.2 Änderung der ACLs

756

20.3.3 Impersonation

759

20.3.4 Zusammenfassung

764

21 ASP.NET und ADO.NET

766

21.1 Die fertige Anwendung

767

21.2 Erstellen der Reservierungsseite

769

21.2.1 Vorbereitende Maßnahmen

769

21.2.2 Hinzufügen der Controls

770

21.2.3 Programmcode

773

21.3 Erstellen der Ergebnisseite

777

21.3.1 Hinzufügen einer neuen Web Form

777

21.3.2 Erstellen der Benutzeroberfläche

778

21.3.3 Programmatischer Wechsel zur Ergebnisseite

780

21.3.4 Code zur Durchführung einer Reservierung

781

21.3.5 Code zur Ausgabe der Belegungsdaten

784

21.4 Zusammenfassung

789

Index

790