ASP.NET. Grundlagen und Profiwissen. Webserverprogrammierung und XML Web Services im.net-framework. von Patrick A Lorenz.



Ähnliche Dokumente
Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost

Jederzeit Ordnung halten

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Lokale Installation von DotNetNuke 4 ohne IIS

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

OP-LOG

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

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

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Migration von statischen HTML Seiten

Zwischenablage (Bilder, Texte,...)

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

MSDE 2000 mit Service Pack 3a

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel für Mac. amac-buch Verlag

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

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

SEMINAR Modifikation für die Nutzung des Community Builders

Online-Zugang zum EOM. Anleitung

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

SANDBOXIE konfigurieren

Liebe Eltern, Alles weitere zum MensaMax -Programm sehen Sie in der folgenden Anleitung. Die Gemeinschaftsschule am Federsee

Access Grundlagen für Anwender. Susanne Weber. 1. Ausgabe, 1. Aktualisierung, Juni 2013

Updatehinweise für die Version forma 5.5.5

Wie richten Sie Ihr Web Paket bei Netpage24 ein

Datenbankimplementierung

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Meet the Germans. Lerntipp zur Schulung der Fertigkeit des Sprechens. Lerntipp und Redemittel zur Präsentation oder einen Vortrag halten

SICHERN DER FAVORITEN

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Änderungsbeschreibung HWS32 SEPA Überweisungen

Reporting Services und SharePoint 2010 Teil 1

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Guide DynDNS und Portforwarding

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Monatstreff für Menschen ab 50 Temporäre Dateien / Browserverlauf löschen / Cookies

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

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

CodeSaver. Vorwort. Seite 1 von 6

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Installationsanleitung dateiagent Pro

Terminabgleich mit Mobiltelefonen

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Gruppenrichtlinien und Softwareverteilung

Computeria Solothurn

Der Kalender im ipad

Titel. App-V 5 Single Server Anleitung zur Installation

SharePoint Demonstration

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten

Speicher in der Cloud

Durchführung der Datenübernahme nach Reisekosten 2011

Kleines Handbuch zur Fotogalerie der Pixel AG

Intranet Moodle

Konzepte der Informatik

Local Control Network Technische Dokumentation

ODBC-Treiber Programmübersicht

Anleitung über den Umgang mit Schildern

Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Verwendung des IDS Backup Systems unter Windows 2000

Um zu prüfen welche Version auf dem betroffenen Client enthalten ist, gehen Sie bitte wie folgt vor:

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Content Management System mit INTREXX 2002.

Online Newsletter III

Inhalt: Ihre persönliche Sedcard... 1 Login... 1 Passwort vergessen... 2 Profildaten bearbeiten... 3

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Hinweise zum Update des KPP Auswahltools (Netzwerkinstallation) auf Version 7.2

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

Professionelle Seminare im Bereich MS-Office

Gmail in Thunderbird mit IMAP einrichten

IMAP Backup. Das Programm zum Sichern, Synchronisieren, Rücksichern und ansehen von gesicherten Mails. Hersteller: malu-soft

Inhaltsverzeichnis. Beschreibung. Hintergrund

Bilder zum Upload verkleinern

Installation Wawi SQL in Verbindung mit Microsoft SQL Server 2008 R2 Express with management Tools

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Mediumwechsel - VR-NetWorld Software

FlowFact Alle Versionen

Objektorientierte Programmierung für Anfänger am Beispiel PHP

e-cargo Kurzeinführung: Neue Version ab

SEPA Lastschriften. Ergänzung zur Dokumentation vom Workshop Software GmbH Siemensstr Kleve / /

SJ OFFICE - Update 3.0

1. Einführung Erstellung einer Teillieferung Erstellung einer Teilrechnung 6

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

Sie müssen sich für diesen Fall mit IHREM Rechner (also zeitgut jk o.ä.) verbinden, nicht mit dem Terminalserver.

Transkript:

ASP.NET Grundlagen und Profiwissen. Webserverprogrammierung und XML Web Services im.net-framework von Patrick A Lorenz überarbeitet ASP.NET Lorenz schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG Hanser München 2003 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 22552 7 Inhaltsverzeichnis: ASP.NET Lorenz

CARL HANSER VERLAG Patrick A. Lorenz ASP.NET -- Grundlagen und Profiwissen Webserverprogrammierung und XML Web Services im.net-framework 3-446-22552-8 www.hanser.de

449 7 Datenbanken & Co. Nachdem Sie zum Abschluss des vorangegangen Kapitels einiges über datengebundene Web Controls wie Repeater, DataList und DataGrid gelesen haben, möchte ich Ihnen als logische Konsequenz die dahinter liegenden Techniken vorstellen. Es geht um Datenbanken und deren Verwendung in Verbindung mit der Web- Entwicklung mit ASP.NET. Ich möchte bereits zu Beginn des Kapitels um Ihr Verständnis bitten, dass ich die vorgestellten Techniken kurz und knapp abhandeln werde. Eine allzu ausführliche Beschreibung würde den Rahmen des Buches sprengen. Falls es notwendig werden sollte, empfehle ich Ihnen, ein separates Fachbuch zum Thema zu erwerben. 7.1 Grundlagen Das.NET Framework bietet unter dem Namen ADO.NET ein umfangreiches Klassensystem zum effizienten Lesen und Schreiben von unterschiedlichsten Datenbanktypen. Es sind sowohl einfache Anwendungen als auch komplexere Anforderungen mit Transaktionen realisierbar. ADO.NET ist ausschließlich managed code und bietet daher eine optimale Integration in das.net Framework. Die Microsoft-Entwickler sind zweigleisig gefahren und unterstützen mehrere so genannte Data Provider. Einerseits ist der direkte Zugriff auf den hauseigenen SQL Server ab Version 7.0 möglich. Andererseits kann über OLE DB jede Datenbank abgefragt werden, für die ein entsprechender Treiber auf dem System installiert ist. Zusätzlich werden seit Version 1.1 auch Zugriffe auf ODBC-Treiber sowie ORAC- LE-Datenbanken ermöglicht. 7.1.1 Verbindungsloser Zugriff Anders als beispielsweise bei Desktop-Applikationen findet das gesamte Daten- Management einer Web-Applikation auf dem Server statt, was einen erhöhten Arbeitsaufwand bedeutet. Parallel greift eine Vielzahl von Benutzern direkt zu, in der

450 7.1 Grundlagen Regel mehr als bei einer lokalen Desktop-Anwendung. Und selbst wenn dies nicht der Fall ist, so sollte es vor dem Hintergrund der Skalierbarkeit zumindest möglich sein. In jedem Fall ist mit einer ganz anderen Art von Belastung umzugehen. Das.NET Framework behandelt die Internet-Entwicklung nicht wie früher eher stiefmütterlich, vielmehr ist diese ein absolut zentraler Aspekt. Insofern wurden auch die Datenbankkonzepte auf die neuen Bedürfnisse angepasst. ADO.NET arbeitet verbindungslos. Die Daten werden einmal bei der Datenbank abgeholt und im Arbeitsspeicher vorgehalten. Der eigentliche Abruf der Daten erfolgt aus dem Arbeitsspeicher. Hier können auch Änderungen vorgenommen werden. Sollen diese letztlich übernommen werden, so wird eine neue Verbindung zur Datenbank aufgebaut und die Aktualisierung in einem Schwung durchgeführt. Diese Arbeitsweise ist ein sehr elementarer Baustein, insbesondere da er eher unüblich ist. Unüblich, aber dadurch nicht weniger notwendig und sinnvoll. Auf diese Weise können die Verbindungen zu einer Datenbank und insbesondere auch deren Dauer absolut reduziert werden. Dies ermöglicht eine Performance-optimierte Verwendung der Datenbanken und erlaubt somit eine einfache und große Skalierbarkeit, was wie beschrieben für Web-Applikationen sehr wichtig ist. 7.1.2 Das DataSet-Objekt Wenn die Daten wie eben beschrieben nur einmal aus der Datenbank abgefragt und dann im Arbeitsspeicher gehalten werden sollen, dann muss eine Grundvoraussetzung unbedingt erfüllt sein. Neben den Daten muss im Speicher auch hinterlegt sein, welchem Aufbau diese eigentlich zu folgen haben. Konkret also, welche Tabellen enthalten sind, welche Spalten welchen Datentyp haben und so weiter. Man nennt derartige Daten, im Allgemeinen und in Zusammenhang mit.net im Besonderen, Meta-Informationen. Die Klasse DataSet repräsentiert sowohl diese Meta-Informationen als auch die eigentlichen Daten in einem Objekt. Ähnlich wie bei der Datenbank können innerhalb einer Instanz der Klasse mehrere Tabellen und auch Verknüpfungen zwischen diesen abgebildet werden. 7.1.3 XML als zentrales Element XML ist mittlerweile zu einem grundlegenden Standard geworden, der überall zum Einsatz kommt, aber selten konkret in Erscheinung tritt. Vielleicht ist XML am ehesten mit TCP/IP vergleichbar. Abgesehen von dem eher selten benutzten UDP handelt es sich um das Internet- und Netzwerkprotokoll schlechthin. Alle benutzen es, aber kaum ein Entwickler kennt heute noch die Grundlagen des Protokolls.

7 Datenbanken & Co. 451 Auch bei.net basieren viele Elemente auf XML oder verwenden die Beschreibungssprache zumindest in irgendeiner Form. Das gilt auch für ADO.NET. Hier wird XML zum Vorhalten der Daten im Arbeitsspeicher verwendet. Sie können somit beispielsweise Daten aus dem Arbeitsspeicher als XML-Datei auf der Festplatte ablegen und später wieder daraus auslesen. Es ergibt sich ein identisches Abbild, denn neben den Daten werden auch die Meta-Informationen in XML gespeichert. Primärer Einsatz ist aber nicht das Speichern auf der Festplatte, sondern der Austausch der Daten innerhalb der verschiedenen Schichten einer Web- Applikation. 7.1.4 SQL Die Abfragesprache SQL ist aus der Datenbankentwicklung nicht mehr wegzudenken. Auch bei ADO.NET spielt sie eine wesentliche Rolle und wird für die Bereitstellung der Daten verwendet. Wenn Sie sich noch nicht mit SQL beschäftigt haben, wird es höchste Zeit, denn ohne SQL keine Datenbank. Einen ersten Vorgeschmack auf SQL sollen Ihnen die kleinen Beispiele geben, denen ich mich im Verlaufe des Kapitels unweigerlich widmen werde. Leider reicht der Umfang dieses Buches jedoch nicht für eine ausführliche Beschreibung der Abfragesprache, so bleibt mir, Sie auf entsprechende Fachliteratur zu verweisen. Gerne mache ich an dieser Stelle ein wenig Werbung für meinen Verlag. Unter www.hanser.de finden Sie entsprechende Literatur. Selbstverständlich bieten aber auch andere Verlagshäuser Grundlagen- und Einstiegswerke zu der Thematik an. 7.1.5 Einbindung in ASP.NET Die Klassen werden unterhalb des Namespaces System.Data zusammengefasst. Wie weiter oben beschrieben existieren zwei alternative Data Provider, der direkte Zugriff auf den SQL-Server ab Version 7.0 oder die Verwendung von OLE DB. Die Bibliotheken für den SQL-Server sind im untergeordneten Namespace System.Data.SqlClient abgelegt und die für OLE DB in System.Data.OleDb. Zur Verwendung von ADO.NET müssen Sie jeweils zwei dieser beiden Namespaces einbinden. Entweder.SqlClient,... <% @Import Namespace="System.Data" %> <% @Import Namespace="System.Data.SqlClient" %>

452 7.1 Grundlagen... oder.oledb, sofern Sie eine andere Datenbank über OLE DB oder eine ältere Version des SQL-Servers nutzen möchten: <% @Import Namespace="System.Data" %> <% @Import Namespace="System.Data.OleDb" %> Der Zugriff auf ODBC und ORACLE erfolgt über analoge Namespaces. In Abhängigkeit von Ihrer Entscheidung stehen Ihnen auch einige unterschiedliche Objekte zur Verfügung. Diese gleichen sich oftmals sowohl in Name als auch Funktionalität, bietet aber jeweils entweder den Zugriff auf den SQL-Server oder aber auf OLE DB, wundern Sie sich also bitte nicht über ähnliche Namen und analoge Beschreibungen. Die Tabelle zeigt die Objekte in der Übersicht. Tabelle 7.1 Die wichtigsten ADO.NET-Klassen Klassenname OleDbConnection OleDbCommand OleDbDataReader OleDbDataAdapter OleDbCommand Builder OleDbTransaction SqlConnection SqlCommand Beschreibung Stellt eine Verbindung zu einer Datenbank über OLE DB her Führt ein SQL-Query gegen eine Datenbank aus Ermöglicht einen lesenden, sequenziellen Zugriff auf die Datensätze einer Datenbank, die über OleDb- Command auf Basis einer SQL-Query zur Verfügung gestellt werden. Der Zugriff erfolgt ausnahmsweise bei bestehender Verbindung zur Datenbank, ist dafür aber nur lesend möglich. Schreibzugriffe sind nicht vorgesehen. Wird dazu benutzt, ein DataSet mit dem Ergebnis einer Datenbankabfrage zu füllen Sorgt dafür, dass Änderungen an einem DataSet automatisch in die zugrunde liegende Datenbank übernommen werden können Ermöglicht die Verwendung von Transaktionen Stellt eine Verbindung zu einer Datenbank auf einem SQL-Server her Führt ein SQL-Query gegen eine Datenbank aus

7 Datenbanken & Co. 453 Klassenname SqlDataReader SqlDataAdapter SqlCommand Builder SqlTransaction DataSet DataTable DataView Beschreibung Ermöglicht einen lesenden, sequenziellen Zugriff auf die Datensätze einer SQL-Server-Datenbank, die über einen SqlCommand auf Basis einer SQL-Query zur Verfügung gestellt werden. Der Zugriff erfolgt ausnahmsweise bei bestehender Verbindung zur Datenbank, ist dafür aber nur lesend möglich. Schreibzugriffe sind nicht vorgesehen. Wird dazu benutzt, ein DataSet mit dem Ergebnis einer Datenbankabfrage zu füllen. Sorgt dafür, dass Änderungen an einem DataSet automatisch in die zugrunde liegende Datenbank übernommen werden können Ermöglicht die Verwendung von Transaktionen Repräsentiert einen Datenbankausschnitt im Arbeitsspeicher und enthält sowohl Daten als auch Meta- Informationen. Es können mehrere Tabellen enthalten sein, die jeweils durch eine Instanz der Klasse Data- Table angeboten werden. Die Tabellen können untereinander relational verknüpft werden. Bildet eine einzelne Tabelle im Arbeitsspeicher ab, erlaubt den Zugriff auf die einzelnen Zeilen und Spalten Visualisiert eine gesamte DataTable oder einen Ausschnitt dieser. Auf die Daten können Filterbedingungen und Sortierungen angewendet werden. Da die Unterstützung für den SQL-Server und OLE DB gleichermaßen gut und vor allem auch analog implementiert ist, möchte ich mich in der nachfolgenden Beschreibung auf einen der beiden Data Provider konzentrieren. Der Einsatz von Access-Datenbanken über OLE DB setzt keine besondere Systemkonfiguration voraus. Ich gebe dieser Variante daher den Zuschlag. Die entsprechende Beispieldatenbank haben Sie bereits im vorangegangenen Kapitel kennen gelernt.

454 7.2 ADO.NET versus ADO 7.2 ADO.NET versus ADO ADO.NET ist mehr als eine neue Version von ADO. Der Umstieg ist ähnlich wie beim Vergleich von ASP und ASP.NET als eine Art Paradigmenwechsel zu verstehen. Viele alte Konzepte wurden zurückgelassen und durch neue, zeitgemäßere ersetzt. Einige davon habe ich Ihnen bereits auf den vorangegangenen Seiten vorgestellt. Sofern Sie bereits mit ASP und ADO gearbeitet haben, sind Sie auch hier zu einem radikalen Umdenken aufgefordert, noch mehr, als dies bei ASP.NET ohnehin der Fall ist. Das frühere Recordset-Objekt existiert beispielsweise nicht mehr. Es wurde durch ein anderes, sehr viel flexibleres ersetzt. Sie ahnen es sicher bereits, die Sprache ist erneut von der Klasse DataSet. Ich werde später detailliert auf dieses Objekt eingehen. 7.3 Einfacher Lesezugriff mit dem DataReader Bevor ich auf die Tiefen der Klasse DataSet zu sprechen komme, möchte ich Ihnen eine sehr viel einfachere Möglichkeit vorstellen, auf eine Datenbank zuzugreifen. Die Klassen OleDbDataReader und SqlDataReader, nachfolgend nur noch Data- Reader genannt, erlauben den Lesezugriff auf eine Datenbank. Die Abfrage der Daten erfolgt sequenziell, also ein Datensatz nach dem anderen. Es kann jeweils nur auf den aktuellen zugegriffen werden. Mit jedem Aufruf wird der Datensatzzeiger zum nächsten Datensatz gewechselt. Ein Rücksprung oder auch indirekter Sprung auf einen bestimmten Satz ist nicht vorgesehen. Der DataReader wird in Verbindung mit zwei anderen Objekten eingesetzt, der Connection sowie dem Command. Bevor ich Ihnen einige Praxisbeispiele zeige, möchte ich Ihnen die beiden Objekte theoretisch näher bringen. Abbildung 7.1 Lesender Zugriff mit dem DataReader.