Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einführung
2 Grundlagen der Sprachsyntax
3 Klassendesign
4 Weitere Datentypen
5 Multithreading
6 Collections und LINQ
7 Eingabe und Ausgabe
8 Anwendungen: Struktur und Installation
9 Code erstellen und debuggen
10 Einige Basisklassen
11 Windows-Anwendungen erstellen
12 Die wichtigsten Steuerelemente
13 Tastatur- und Mausereignisse
14 MDI-Anwendungen
15 Grafiken mit GDI+
16 Drucken
17 Entwickeln von Steuerelementen
18 Programmiertechniken
19 WPF – Grundlagen
20 Layoutcontainer
21 WPF-Steuerelemente
22 Konzepte von WPF
23 Datenbankverbindung mit ADO.NET
24 Datenbankabfragen mit ADO.NET
25 DataAdapter
26 Offline mit DataSet
27 Datenbanken aktualisieren
28 Stark typisierte DataSets
A Anhang: Einige Übersichten
Stichwort

Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Visual Basic 2008 von Andreas Kuehnel, Stephan Leibbrandt
Das umfassende Handbuch
Buch: Visual Basic 2008

Visual Basic 2008
3., aktualisierte und erweiterte Auflage, geb., mit DVD
1.323 S., 49,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1171-0
Pfeil 25 DataAdapter
Pfeil 25.1 Was ist ein DataAdapter?
Pfeil 25.1.1 Ein Programmbeispiel
Pfeil 25.2 Initialisierung
Pfeil 25.2.1 Konstruktoren
Pfeil 25.2.2 Die Eigenschaft SelectCommand
Pfeil 25.3 Den lokalen Datenspeicher füllen
Pfeil 25.3.1 Verbindungen öffnen und schließen
Pfeil 25.3.2 Doppelter Aufruf der Fill-Methode
Pfeil 25.3.3 Mehrere DataAdapter-Objekte aufrufen
Pfeil 25.3.4 Der Spalten- und der Tabellenbezeichner einer DataTable
Pfeil 25.3.5 Paging mit der Fill-Methode
Pfeil 25.4 Tabellenzuordnung mit TableMappings
Pfeil 25.4.1 Spaltenzuordnungen in einem DataSet
Pfeil 25.4.2 Spaltenzuordnungen einer DataTable
Pfeil 25.4.3 Die Eigenschaft MissingMappingAction des DataAdapters
Pfeil 25.5 Das Ereignis FillError des DataAdapters

Die Verbindung zwischen den lokal gespeicherten Daten und der Datenbank stellt der DataAdapter her. Dieses Kapitel beschreibt, wie Sie Daten auslesen und Tabellen benennen.

25 DataAdapter

Im letzten Kapitel haben Sie erfahren, wie Sie ein SQL-Kommando gegen eine Datenbank absetzen. Sie wissen, dass mit der Methode ExecuteNonQuery des Command-Objekts eine Aktionsabfrage ausgeführt werden kann und dass von ExecuteReader ein DataReader-Objekt zurückgeliefert wird, in dem wir eine Datenzeile nach der anderen durchlaufen können. Für ganz einfache Anforderungen mag das durchaus genügen, bei objektiver Betrachtung aber werden damit die Bedürfnisse der täglichen Praxis völlig unzureichend abgedeckt.

Was ist, wenn wir es dem Anwender ermöglichen wollen, beliebig zwischen den einzelnen Datensätzen zu navigieren? Wie kann ein Anwender die eingelesenen Datensätze aktualisieren? Wie kann seitens der Anwendung sichergestellt werden, dass bei der Aktualisierung Einschränkungen (constraints) berücksichtigt werden?

Grundsätzlich ließen sich diese und viele weitere Aufgaben mit dem Gespann Command- und DataReader-Objekt erledigen. Aber denken wir einen Schritt weiter. Beide Objekte sind von einer geöffneten Verbindung zur Datenbank abhängig. Wollen wir es einem Anwender ermöglichen, durch die Datensätze zu navigieren, müssen wir die Verbindung zur Datenquelle über einen längeren Zeitraum geöffnet halten.

Eine Verbindung länger als unbedingt notwendig geöffnet zu halten, ist aus vielerlei Hinsicht nicht akzeptabel. Stellen Sie sich nur eine Datenbank im Internet vor. Eine geöffnete Verbindung kostet Geld, und die Netzwerkressourcen werden belastet. Zudem ist die Anzahl der gleichzeitigen Zugriffe auf eine Datenbank begrenzt. Ein DataAdapter vermeidet diese Probleme.


Hinweis
Wenn möglich werden die Db- statt der Sql-Typen verwendet. Alle Aussagen, die sich im Folgenden auf die Db-Typen beziehen, gelten auch für die analogen Sql-Typen.



Galileo Computing - Zum Seitenanfang

25.1 Was ist ein DataAdapter? Zur nächsten ÜberschriftZur vorigen Überschrift

Eine gute Lösung sollte alle Datensätze einlesen und im lokalen Speicher ablegen. Wir brauchen diesen Ansatz jedoch nicht selbst zu programmieren, ADO.NET stellt mit der (abstrakten) Klasse DbDataAdapter ein Bindeglied zwischen der Datenquelle und dem lokalen Speicher zur Verfügung. Es kann Daten aus einer Datenquelle abfragen und in einer oder mehreren Tabellen im lokalen Speicher halten. Darüber hinaus kann ein DataAdapter-Objekt auch lokale Änderungen an den Tabellen an die Datenquelle übermitteln. Um die Netzwerk- und Datenbankbelastung so gering wie möglich zu halten, baut das DataAdapter-Objekt nur dann eine Verbindung zur Datenbank auf, wenn dies notwendig ist. Sind alle Operationen beendet, wird die Verbindung wieder geschlossen.

Im Zusammenhang mit einem DataAdapter spielen auch Connection- und Command-Objekte eine wichtige Rolle. Alle drei sind provider-spezifisch (zum Beispiel SqlDataAdapter, SqlConnection und SqlCommand) und werden zu den verbundenen Typen des ADO.NET-Objektmodells gezählt. Die Datentypen, die die Daten im lokalen Speicher automatisch verwalten und organisieren, werden zu den unverbundenen Typen des ADO.NET-Objektmodells gerechnet. Ein DataAdapter kann daher als Bindeglied zwischen den verbundenen und den unverbundenen Objekten angesehen werden.

Ein DataAdapter spielt in zwei Szenarien eine wichtige Rolle:

  • beim Füllen eines DataSets oder einer DataTable
  • beim Aktualisieren des geänderten Inhalts von DataSet bzw. DataTable

In diesem Kapitel werden wir uns ausschließlich mit dem Abrufen von Dateninformationen und dem sich daran anschließenden Füllen der lokalen Objekte beschäftigen. Das »andere Gesicht« des DataAdapters sehen wir uns nach dem Studium von DataSet an.


Galileo Computing - Zum Seitenanfang

25.1.1 Ein Programmbeispiel topZur vorigen Überschrift

Ehe wir uns mit dem DataAdapter genauer beschäftigen, möchte ich Ihnen ein Beispiel zeigen, das mithilfe eines DataAdapters den lokalen Speicher mit den Spalten ProductName und UnitPrice aller Datensätze der Tabelle Products füllt. Die lokale Datensatzliste wird anschließend in einer Schleife an der Konsole ausgegeben. Auf die genaue Erklärung des Codes soll hier noch verzichtet werden. Auffällig ist, dass Open und Close fehlen.


'...\ADO\DataAdapter\Beispiel.vb

Option Strict On 
Imports System.Data.Common, System.Data.SqlClient 
Namespace ADO 
  Module Beispiel 
    Sub Test() 
      Dim con As DbConnection = New SqlConnection() 
      con.ConnectionString = "Data Source=(local);" & _ 
          "Initial Catalog=Northwind;Integrated Security=sspi"

      Dim cmd As DbCommand = New SqlCommand() 
      cmd.CommandText = "SELECT ProductName, UnitPrice FROM products" 
      cmd.Connection = con

      Dim da As DbDataAdapter = New SqlDataAdapter() 
      da.SelectCommand = cmd

      Dim tbl As New DataTable() ' lokaler Speicher 
      da.Fill(tbl) 
      For Each row As DataRow In tbl.Rows 
        Console.WriteLine("{0,-35} {1} ", row(0), row(1)) 
      Next

      Console.ReadLine() 
    End Sub 
  End Module 
End Namespace


Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück
  Zum Katalog
Zum Katalog: Visual Basic 2008
Visual Basic 2008
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Visual Basic 2012






 Visual Basic 2012


Zum Katalog: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Katalog: Professionell entwickeln mit Visual C# 2012






 Professionell
 entwickeln mit
 Visual C# 2012


Zum Katalog: Windows Presentation Foundation






 Windows Presentation
 Foundation


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2009
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de