Exemplarische Vorgehensweise: Datenbindung an ein benutzerdefiniertes Geschäftsobjekt

Aktualisiert: November 2007

Viele Webanwendungen werden mithilfe mehrerer Ebenen erstellt. Dabei befinden sich eine oder mehrere Komponenten in der mittleren Ebene, um den Datenzugriff zu gewährleisten. Microsoft Visual Web Developer enthält einen Assistenten, mit dem Sie eine Datenkomponente erstellen können, die als Datenobjekt der mittleren Ebene verwendet werden kann. Dies wird unter Exemplarische Vorgehensweise: Datenbindung in Webseiten mit einer Visual Studio-Datenkomponente beschrieben.

Sie können jedoch auch ein benutzerdefiniertes Geschäftsobjekt erstellen, anstatt sich auf die vom Assistenten erstellte Datenkomponente zu verlassen. Wenn Sie ein benutzerdefiniertes Geschäftsobjekt erstellen, können Sie eine eigene Geschäftslogik implementieren. In dieser exemplarischen Vorgehensweise wird das Erstellen eines einfachen Geschäftsobjekts veranschaulicht, das als Datenquelle für ASP.NET-Webseiten verwendet werden kann.

In dieser exemplarischen Vorgehensweise wird Folgendes erläutert:

  • Erstellen einer Komponente, die Daten an eine Webseite zurückgeben kann. Die Komponente verwendet für ihre Daten eine XML-Datei.

  • Verweisen auf das Geschäftsobjekt als Datenquelle für eine Webseite.

  • Binden eines Steuerelements an die vom Geschäftsobjekt zurückgegebenen Daten.

  • Lesen und Schreiben von Daten mithilfe des Geschäftsobjekts.

Vorbereitungsmaßnahmen

Für die Durchführung dieser exemplarischen Vorgehensweise benötigen Sie Folgendes:

  • Visual Web Developer (Visual Studio).

  • .NET Framework.

Für diese exemplarische Vorgehensweise müssen Sie über allgemeine Kenntnisse zur Verwendung von Visual Web Developer verfügen.

Erstellen der Website

Wenn Sie bereits eine Website in Visual Web Developer erstellt haben (z. B. mithilfe des Verfahrens in Exemplarische Vorgehensweise: Erstellen einer einfachen Webseite in Visual Web Developer), können Sie diese Website verwenden und zum nächsten Abschnitt, "Erstellen einer XML-Datei für Geschäftsdaten", übergehen. Erstellen Sie andernfalls eine neue Website und eine neue Webseite, indem Sie folgende Schritte ausführen:

So erstellen Sie eine Dateisystem-Website

  1. Öffnen Sie Visual Web Developer.

  2. Klicken Sie im Menü Datei nacheinander auf Neu und auf Website.

    Das Dialogfeld Neue Website wird angezeigt.

  3. Klicken Sie unter Von Visual Studio installierte Vorlagen auf ASP.NET-Website.

  4. Geben Sie im Feld Speicherort den Namen des Ordners ein, in dem die Seiten der Website gespeichert werden sollen.

    Geben Sie z. B. den Ordnernamen C:\WebSites ein.

  5. Klicken Sie in der Liste Sprache auf die Programmiersprache, in der Sie arbeiten möchten.

  6. Klicken Sie auf OK.

    Visual Web Developer erstellt den Ordner sowie eine neue Seite mit dem Namen Default.aspx.

Erstellen einer XML-Datei für Geschäftsdaten

Mit den folgenden Schritten erstellen Sie eine einfache XML-Datei für die Daten der Geschäftskomponente.

So erstellen Sie die XML-Datei

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf App_Data, und klicken Sie dann auf Neues Element hinzufügen.

    Hinweis:

    Stellen Sie sicher, dass Sie die XML-Datei im Ordner App_Data erstellen. Für den Ordner App_Data sind Berechtigungen festgelegt, die der Webseite das Schreiben und Lesen von Daten in die bzw. aus der XML-Datei ermöglichen.

  2. Klicken Sie unter Von Visual Studio installierte Vorlagen auf XML-Datei.

  3. Geben Sie im Feld Name die Zeichenfolge Authors.xml ein.

  4. Klicken Sie auf Hinzufügen.

    Eine neue XML-Datei wird erstellt, die nur die XML-Direktive enthält.

  5. Kopieren Sie die folgenden XML-Daten, und fügen Sie sie in der Datei ein. Überschreiben Sie dabei den bereits vorhandenen Inhalt der Datei.

    Die XML-Datei enthält Schemainformationen, die die Datenbankstruktur der Daten angeben, einschließlich einer Primärschlüsseleinschränkung für den Schlüssel.

    Hinweis:

    Geschäftskomponenten können die Daten entsprechend den jeweiligen Anforderungen der Anwendung verarbeiten. In dieser exemplarischen Vorgehensweise wird eine XML-Datei verwendet.

    <?xml version="1.0" standalone="yes"?>
    <dsPubs xmlns="http://www.tempuri.org/dsPubs.xsd">
    <xs:schema id="dsPubs" targetNamespace="http://www.tempuri.org/dsPubs.xsd" xmlns:mstns="http://www.tempuri.org/dsPubs.xsd" xmlns="http://www.tempuri.org/dsPubs.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified">
        <xs:element name="dsPubs" msdata:IsDataSet="true">
          <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
              <xs:element name="authors">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="au_id" type="xs:string" />
                    <xs:element name="au_lname" type="xs:string" />
                    <xs:element name="au_fname" type="xs:string" />
                    <xs:element name="au_phone" type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:choice>
          </xs:complexType>
          <xs:unique name="Constraint1" msdata:PrimaryKey="true">
            <xs:selector xpath=".//mstns:authors" />
            <xs:field xpath="mstns:au_id" />
          </xs:unique>
        </xs:element>
      </xs:schema>
      <authors>
        <au_id>172-32-1176</au_id>
        <au_lname>West</au_lname>
        <au_fname>Paul</au_fname>
        <au_phone>408 555-0123</au_phone>
      </authors>
      <authors>
        <au_id>213-46-8915</au_id>
        <au_lname>Gray</au_lname>
        <au_fname>Chris</au_fname>
        <au_phone>415 555-0120</au_phone>
      </authors>
    </dsPubs>
    
  6. Speichern Sie die Datei Authors.xml, und schließen Sie sie dann.

Erstellen einer Komponente

Der nächste Schritt besteht im Erstellen einer Klasse, die als Geschäftskomponente fungiert. Die Komponente wird im Ordner App_Code der Website gespeichert. In einer realen Anwendung können Sie die Komponente an jedem beliebigen geeigneten Speicherplatz verwalten, z. B. auch im globalen Assemblycache. Wenn für die Website noch kein Verzeichnis mit dem Namen App_Code vorliegt, müssen Sie dieses erstellen.

So erstellen Sie den Ordner App_Code

  • Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Namen der Website, klicken Sie auf ASP.NET-Ordner hinzufügen, und klicken Sie dann auf App_Code.

    Hinweis:

    Der Name des Ordners muss App_Code lauten.

Sie können der Website jetzt die Komponente hinzufügen.

So erstellen Sie die Geschäftskomponente

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf App_Code, und klicken Sie dann auf Neues Element hinzufügen.

    Hinweis:

    Stellen Sie sicher, das Sie das neue Element im Ordner App_Code erstellen.

    Das Dialogfeld Neues Element hinzufügen wird angezeigt.

  2. Klicken Sie unter Von Visual Studio installierte Vorlagen auf Klasse.

  3. Klicken Sie im Feld Sprache auf die von Ihnen gewünschte Programmiersprache.

  4. Geben Sie im Feld Name die Zeichenfolge BusinessObject ein.

  5. Klicken Sie auf Hinzufügen.

    Visual Web Developer erstellt die neue Klassendatei und öffnet den Code-Editor.

  6. Kopieren Sie die folgenden XML-Daten, und fügen Sie sie in die Datei ein. Überschreiben Sie dabei den bereits vorhandenen Inhalt der Datei.

    Imports Microsoft.VisualBasic
    Imports System
    Imports System.Web
    Imports System.Data
    Namespace PubsClasses
        Public Class AuthorClass
            Private dsAuthors As DataSet = _
                New System.Data.DataSet("ds1")
            Private filePath As String = _
               HttpContext.Current.Server.MapPath _
                   ("~/App_Data/authors.xml")
            Public Sub New()
                dsAuthors.ReadXml(filePath, Data.XmlReadMode.ReadSchema)
            End Sub
    
            Public Function GetAuthors() As DataSet
                Return dsAuthors
                End Function
            End Class
    End Namespace
    
    using System;
    using System.Web;
    using System.Data;
    namespace PubsClasses
    {
        public class AuthorClass
        {
            private DataSet dsAuthors = new DataSet("ds1");
            private String filePath =
                HttpContext.Current.Server.MapPath
                    ("~/App_Data/Authors.xml");
            public AuthorClass()
            {
                dsAuthors.ReadXml (filePath, XmlReadMode.ReadSchema);
            }
            public DataSet GetAuthors ()
            {
                return dsAuthors;
            }
        }
    }
    
    Hinweis:

    Stellen Sie sicher, dass der Wert der filePath-Variable auf den Namen der zuvor erstellten XML-Datei verweist.

    Nachdem eine Instanz der Klasse erstellt wurde, liest diese die XML-Datei und übersetzt sie in ein Dataset. Die GetAuthors-Methode der Klasse gibt das Dataset zurück.

  7. Speichern Sie die Datei. Die Datei muss gespeichert werden, damit der nächste Abschnitt ordnungsgemäß ausgeführt werden kann.

Anzeigen von Daten mithilfe der Geschäftskomponente

Sie können die Geschäftskomponente jetzt auf einer Webseite aufrufen und die zugehörigen Daten anzeigen. Verwenden Sie zum Verweisen auf die Komponente ein ObjectDataSource-Steuerelement, das speziell für die Verwendung mit Objekten entwickelt wurde.

So erstellen Sie ein ObjectDataSource-Steuerelement zum Verweisen auf die Komponente

  1. Wechseln Sie zur Seite Default.aspx, oder öffnen Sie sie.

    Hinweis:

    Wenn die Seite Default.aspx nicht vorhanden ist, kann eine andere Seite verwendet werden. Sie können der Website auch eine neue Seite hinzufügen. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Namen der Website, klicken Sie anschließend auf Neues Element hinzufügen, und fügen Sie dann ein Web Form hinzu.

  2. Wechseln Sie in die Entwurfsansicht.

  3. Ziehen Sie ein ObjectDataSource-Steuerelement aus dem Ordner Daten der Toolbox auf die Seite.

  4. Legen Sie im Eigenschaftenfenster ID auf AuthorsObjectDataSource fest.

  5. Klicken Sie mit der rechten Maustaste auf das ObjectDataSource-Steuerelement. Klicken Sie anschließend auf das Smarttag, um das Menü ObjectDataSource-Aufgaben anzuzeigen.

  6. Klicken Sie im Menü ObjectDataSource-Aufgaben auf Datenquelle konfigurieren.

    Der Assistent Konfigurieren von Datenquellen wird angezeigt.

  7. Klicken Sie in der Liste Geschäftsobjekt auswählen auf PubsClasses.AuthorClass.

  8. Klicken Sie auf Weiter.

  9. Klicken Sie auf der Registerkarte Auswählen in der Liste Methode auswählen auf GetAuthors(), returns Dataset.

    Die GetAuthors-Methode ist in der zuvor erstellten Geschäftsklasse definiert. Die Methode gibt ein Dataset zurück, das die Daten aus der Datei Authors.xml enthält.

  10. Klicken Sie auf Fertig stellen.

    Mit den eingegebenen Konfigurationsinformationen wird festgelegt, dass zum Abrufen der Daten aus der Komponente die GetAuthors-Methode der Komponente aufgerufen werden soll.

    Hinweis:

    Wenn Sie den Namen der Methode für die SelectMethod-Eigenschaft angeben, müssen Sie die Groß-/Kleinschreibung beachten. Dies gilt auch für die Programmierung in Visual Basic .NET.

Sie können Daten aus der Komponente jetzt mithilfe des ObjectDataSource-Steuerelements abrufen. Sie zeigen die Daten auf der Webseite in einem GridView-Steuerelement an.

So zeigen Sie Daten aus der Komponente an

  1. Ziehen Sie ein GridView-Steuerelement aus dem Ordner Daten der Toolbox auf die Seite.

  2. Klicken Sie mit der rechten Maustaste auf das GridView-Steuerelement. Wenn das Menü Common GridView-Aufgaben nicht angezeigt wird, klicken Sie auf das Smarttag.

  3. Klicken Sie im Menü Allgemeine GridView-Aufgaben im Feld Datenquelle auswählen auf AuthorsObjectDataSource.

  4. Drücken Sie STRG+F5, um die Seite auszuführen.

    Das GridView-Steuerelement wird mit den XML-Daten angezeigt.

Einfügen von Daten mithilfe der Geschäftskomponente

Ebenso wie andere Datenquellen-Steuerelemente (z. B. das SqlDataSource-Steuerelement) unterstützt auch das ObjectDataSource-Steuerelement Aktualisierungsvorgänge (Einfügen, Aktualisieren und Löschen). In diesem Abschnitt ändern Sie die Geschäftskomponente mithilfe einer Methode, die einen Autorendatensatz einfügt. Anschließend ändern Sie die Webseite, sodass neue Autoreninformationen eingegeben werden können. Darüber hinaus ändern Sie das ObjectDataSource-Steuerelement, damit es den Einfügevorgang ausführen kann.

Hinweis:

In diesem Teil der exemplarischen Vorgehensweise wird die zuvor erstellte Datei Authors.xml aktualisiert. Daher muss die Anwendung über die Berechtigung zum Schreiben in der Datei zur Laufzeit verfügen. Andernfalls wird beim Versuch, die Datei zu aktualisieren, von der Webseite eine Fehlermeldung angezeigt. Wenn Sie die Datei Authors.xml im Ordner App_Data erstellt haben, wurden diese Berechtigungen automatisch festgelegt.

So ändern Sie die Geschäftskomponente für das Zulassen von Einfügevorgängen

  1. Wechseln Sie zur BusinessObject-Datei.

  2. Fügen Sie die folgende Methode als abschließenden Member von AuthorClass hinzu.

    Public Sub InsertAuthor(ByVal au_id As String, _
            ByVal au_lname As String, _
            ByVal au_fname As String, ByVal au_phone As String)
        Dim workRow As DataRow = dsAuthors.Tables(0).NewRow
        workRow.BeginEdit()
        workRow(0) = au_id
        workRow(1) = au_lname
        workRow(2) = au_fname
        workRow(3) = au_phone
        workRow.EndEdit()
        dsAuthors.Tables(0).Rows.Add(workRow)
        dsAuthors.WriteXml(filePath, Data.XmlWriteMode.WriteSchema)
    End Sub
    
    public void InsertAuthor (String au_id, String au_lname, 
        String au_fname, String au_phone)
    {
        DataRow workRow = dsAuthors.Tables[0].NewRow ();
        workRow.BeginEdit ();
        workRow[0] = au_id;
        workRow[1] = au_lname;
        workRow[2] = au_fname;
        workRow[3] = au_phone;
        workRow.EndEdit ();
        dsAuthors.Tables[0].Rows.Add (workRow);
        dsAuthors.WriteXml (filePath, XmlWriteMode.WriteSchema);
    }
    
    Hinweis:

    Achten Sie insbesondere auf die Namen der Variablen, mit denen die Autoreninformationen an die Methode übergeben werden (au_id, au_lname, au_fname und au_phone). Sie müssen mit den Spaltennamen übereinstimmen, die im Schema der zuvor erstellten XML-Datei definiert wurden.

    Die neue Methode verwendet vier Werte für den Einfügevorgang. Diese Werte müssen auf der Webseite als Parameter bereitgestellt werden. Die Methode erstellt eine neue Zeile im Dataset, und schreibt anschließend das aktualisierte Dataset in die XML-Datei.

  3. Speichern Sie die Datei.

Der nächste Schritt besteht im Ändern der Seite, sodass Benutzer neue Autoreninformationen eingeben können. Für das folgende Verfahren verwenden Sie das DetailsView-Steuerelement.

So fügen Sie ein Steuerelement zum Einfügen von Daten hinzu

  1. Wechseln Sie zur Seite Default.aspx, oder öffnen Sie sie.

  2. Wechseln Sie in die Entwurfsansicht.

  3. Ziehen Sie ein DetailsView-Steuerelement aus dem Ordner Daten der Toolbox auf die Seite.

    Hinweis:

    Das genaue Layout der Seite ist nicht wichtig.

  4. Klicken Sie im Menü DetailsView-Aufgaben im Feld Datenquelle auswählen auf AuthorsObjectDataSource.

    Hinweis:

    Wenn das Menü DetailsView-Aufgaben nicht angezeigt wird, klicken Sie auf das Smarttag.

  5. Legen Sie im Eigenschaftenfenster AutoGenerateInsertButton auf true fest.

    Dadurch wird vom DetailsView-Steuerelement eine Neu-Schaltfläche wiedergegeben. Wenn die Benutzer auf diese Schaltfläche klicken, wechselt das Steuerelement in den Dateneingabemodus.

Abschließend müssen Sie das ObjectDataSource-Steuerelement konfigurieren, um anzugeben, welche Aktion vom Steuerelement zum Einfügen von Daten ausgeführt werden soll.

So konfigurieren Sie das Datenquellen-Steuerelement für das Einfügen von Daten

  • Klicken Sie mit der rechten Maustaste auf AuthorsObjectDataSource, klicken Sie anschließend auf Eigenschaften, und legen Sie dann InsertMethod auf InsertAuthor fest.

    Dabei handelt es sich um den Namen der Methode, die Sie der Geschäftskomponente hinzugefügt haben.

Sie können jetzt neue Autoren in die XML-Datei einfügen.

So testen Sie den Einfügevorgang

  1. Drücken Sie STRG+F5, um die Seite Default.aspx auszuführen.

  2. Klicken Sie im DetailsView-Steuerelement auf die Schaltfläche Neu.

    Das Steuerelement wird mit Textfeldern erneut angezeigt.

  3. Geben Sie neue Autoreninformationen ein, und klicken Sie dann auf Einfügen.

    Die neuen Autoreninformationen werden der XML-Datei hinzugefügt. Das GridView-Steuerelement gibt den neuen Datensatz sofort wieder.

Nächste Schritte

In dieser exemplarischen Vorgehensweise wird das Arbeiten mit einer Datenkomponente veranschaulicht. Sie können auch weitere Navigationsfeatures testen. Auf diese Weise können Sie beispielsweise folgende Vorgänge durchführen:

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Datenbindung in Webseiten mit einer Visual Studio-Datenkomponente

Exemplarische Vorgehensweise: Verwenden von freigegebenem Code in Websites in Visual Web Developer

Exemplarische Vorgehensweise: Erstellen einer einfachen Webseite in Visual Web Developer

Konzepte

Übersicht über Datenquellensteuerelemente

Verwenden von Parametern für Datenquellen-Steuerelemente