Exemplarische Vorgehensweise: Abrufen, Aktualisieren, Einfügen und Löschen von Daten mit dem LinqDataSource-Steuerelement und dem DetailsView-Steuerelement

Aktualisiert: November 2007

In dieser exemplarischen Vorgehensweise erstellen Sie eine einfache Datenbanktabelle und eine Webseite, in der das LinqDataSource-Steuerelement verwendet wird. Über die Webseite können Benutzer Daten der Datenbanktabelle abrufen, aktualisieren und löschen sowie neue Daten einfügen. Die Daten werden mit einem DetailsView-Steuerelement angezeigt. Mit dem LinqDataSource-Steuerelement können Sie diese Operationen durchführen, ohne Select-, Update-, Insert- oder Delete-Anweisungen schreiben zu müssen.

Mit dem O/R-Designer erstellen Sie eine Klasse, die die Datenbanktabelle mit den Werten darstellt. Das LinqDataSource-Steuerelement interagiert mit dieser generierten Klasse, um die Daten abzurufen, zu aktualisieren, einzufügen und zu löschen.

Vorbereitungsmaßnahmen

Zur Implementierung dieser Prozeduren in Ihrer eigenen Entwicklungsumgebung ist Folgendes erforderlich:

  • Visual Studio 2008 oder Visual Web Developer Express Edition

  • SQL Server Express Edition auf dem Computer installiert. Sie können auch einen installierten SQL Server verwenden, jedoch müssen Sie an einigen der Prozeduren kleine Anpassungen vornehmen.

  • Eine ASP.NET-Website.

Erstellen einer Datenbanktabelle

Um die Schritte in dieser exemplarischen Vorgehensweise auszuführen, benötigen Sie eine Datenbanktabelle. Wenn Sie nicht über eine Tabelle verfügen, können Sie diese mit der folgenden Prozedur erstellen. Wenn Sie eine vorhandene Tabelle verwenden, entsprechen die Schritte in einigen der Prozeduren nicht genau Ihrer verwendeten Datenbank. Trotzdem gelten jedoch die in der exemplarischen Vorgehensweise veranschaulichten Konzepte.

So erstellen Sie eine Datenbanktabelle

  1. Wenn die Website nicht bereits über den Ordner App_Data verfügt, klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, klicken Sie auf ASP.NET-Ordner hinzufügen, und klicken Sie dann auf App_Data.

  2. Klicken Sie mit der rechten Maustaste auf den Ordner App_Data, und klicken Sie dann auf Neues Element hinzufügen.

  3. Wählen Sie unter Installierte Vorlagen die Option SQL-Datenbank aus, ändern Sie den Dateinamen in Reviews.mdf, und klicken Sie dann auf Hinzufügen.

  4. Öffnen Sie im Server-Explorer den Knoten Reviews.mdf, und klicken Sie dann mit der rechten Maustaste auf den Ordner Tabellen.

  5. Klicken Sie auf Neue Tabelle hinzufügen.

  6. Erstellen Sie in der Tabelle die folgenden Spalten:

    Spaltenname

    Datentyp

    Eigenschaften

    MovieID

    int

    IsIdentity = Ja

    Nicht 0 (null)

    Primärschlüssel

    Title

    nvarchar(50)

    Theater

    nvarchar(50)

    Review

    nvarchar(1000)

    Score

    int

    Nicht 0 (null)

  7. Speichern Sie die Tabelle unter dem Namen MovieReviews.

  8. Fügen Sie der Tabelle MovieReviews mehrere Datensätze mit Beispieldaten hinzu.

    Klicken Sie im Server-Explorer mit der rechten Maustaste auf die Tabelle MovieReviews, und klicken Sie auf Tabellendaten anzeigen. Für MovieID müssen Sie keinen Wert angeben, da dieser von der Datenbank generiert wird.

Erstellen von Klassen zum Darstellen von Datenbankentitäten

Beim Arbeiten mit dem LinqDataSource-Steuerelement arbeiten Sie mit Klassen, die Datenbankentitäten darstellen. In Visual Studio 2008 oder Visual Web Developer Express Edition können Sie diese Klassen mit einem Tool erstellen.

So erstellen Sie eine Klasse für die Tabelle MovieReviews

  1. Wenn die Website nicht bereits über den Ordner App_Code verfügt, klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, klicken Sie auf ASP.NET-Ordner hinzufügen, und klicken Sie dann auf App_Code.

  2. Klicken Sie mit der rechten Maustaste auf den Ordner App_Code, und klicken Sie dann auf Neues Element hinzufügen.

  3. Wählen Sie unter Installierte Vorlagen die Vorlage LINQ to SQL-Klassen aus, benennen Sie die Datei in Reviews.dbml um, und klicken Sie dann auf Hinzufügen.

    Der O/R-Designer wird angezeigt.

  4. Ziehen Sie die Tabelle MovieReviews im Server-Explorer in das Fenster O/R-Designer.

    Die Tabelle MovieReviews und ihre Spalten werden im Designerfenster als Entität mit dem Namen MovieReview dargestellt.

  5. Speichern Sie die Datei Reviews.dbml.

  6. Öffnen Sie im Projektmappen-Explorer die Datei Reviews.designer.cs bzw. Reviews.designer.vb.

    Beachten Sie, dass sie jetzt Klassen für ReviewsDataContext und MovieReview enthält. Die ReviewsDataContext-Klasse stellt die Datenbank dar und die MovieReview-Klasse die Datenbanktabelle. Der parameterlose Konstruktor für die ReviewsDataContext-Klasse liest die Verbindungszeichenfolge aus der Datei Web.config.

  7. Öffnen Sie die Datei Web.config.

    Beachten Sie, dass die Verbindungszeichenfolge im connectionStrings-Element hinzugefügt wurde.

  8. Schließen Sie die Klassendatei und die Datei Web.config.

Erstellen und Konfigurieren eines LinqDataSource-Steuerelements

Da Sie nun über eine Datenbanktabelle und über Klassen verfügen, die Datenbankentitäten darstellen, können Sie Daten auf einer ASP.NET-Webseite mit einem LinqDataSource-Steuerelement verwalten.

So erstellen und konfigurieren Sie ein LinqDataSource-Steuerelement

  1. Erstellen Sie in Visual Studio eine neue ASP.NET-Webseite, und wechseln Sie in die Entwurfsansicht.

  2. Ziehen Sie von der Registerkarte Daten der Toolbox ein LinqDataSource-Steuerelement auf das form-Element auf der Webseite.

    Sie können die ID-Eigenschaft LinqDataSource1 übernehmen.

  3. Legen Sie die ContextTypeName-Eigenschaft auf ReviewsDataContext fest.

  4. Legen Sie die TableName-Eigenschaft auf MovieReviews fest.

  5. Legen Sie AutoPage auf true fest, und wechseln Sie in die Quellansicht.

    Das folgende Beispiel enthält das deklarative Markup für das LinqDataSource-Steuerelement.

    <asp:LinqDataSource 
      ContextTypeName="ReviewsDataContext" 
      TableName="MovieReviews" 
      AutoPage="true" 
      ID="LinqDataSource1" 
      >
    </asp:LinqDataSource>
    

    Beachten Sie, dass Sie keine Datenbankbefehle zum Auswählen der Daten angeben müssen.

Hinzufügen eines Steuerelements zum Anzeigen von Daten

Sie können nun ein DetailsView-Steuerelement hinzufügen und es an das LinqDataSource-Steuerelement binden. Mit dem DetailsView-Steuerelement können Benutzer Daten anzeigen, die vom LinqDataSource-Steuerelement verwaltet werden.

So verbinden Sie die Daten der LinqDataSource mit einer DetailsView

  1. Doppelklicken Sie auf der Registerkarte Daten der Toolbox auf das DetailsView-Steuerelement, um es der Seite hinzuzufügen.

    Sie können die ID-Eigenschaft DetailsView1 übernehmen.

  2. Legen Sie die DataSourceID-Eigenschaft auf LinqDataSource1 fest.

  3. Legen Sie die DataKeyNames-Eigenschaft auf MovieID fest.

  4. Legen Sie AllowPaging auf true fest.

    Das folgende Beispiel enthält das deklarative Markup für das DetailsView-Steuerelement.

    <asp:DetailsView 
      DataSourceID="LinqDataSource1" 
      DataKeyNames="MovieID" 
      AllowPaging="true" 
      ID="DetailsView1" 
      >
    </asp:DetailsView>
    
  5. Speichern Sie die Änderungen, und drücken Sie STRG+F5, um die Seite in einem Browser anzuzeigen.

    Das DetailsView-Steuerelement zeigt die Werte des aktuellen Datensatzes der Tabelle MovieReviews an. Die Websteuerelemente zum Anzeigen der Spalten der Datenbanktabelle werden vom DetailsView-Steuerelement automatisch erstellt.

Ermöglichen, dass Benutzer Daten aktualisieren, einfügen und löschen

Die Befehle zum Aktualisieren, Einfügen und Löschen von Daten können über das LinqDataSource-Steuerelement erstellt werden.

So ermöglichen Sie Aktualisierungs-, Einfüge- und Löschvorgänge

  1. Legen Sie im LinqDataSource-Steuerelement die EnableUpdate-Eigenschaft, die EnableInsert-Eigenschaft und die EnableDelete-Eigenschaft auf true fest.

    Das folgende Beispiel enthält das deklarative Markup für das LinqDataSource-Steuerelement.

    <asp:LinqDataSource 
      ContextTypeName="ReviewsDataContext" 
      TableName="MovieReviews" 
      AutoPage="true" 
      EnableUpdate="true" 
      EnableInsert="true" 
      EnableDelete="true" 
      ID="LinqDataSource1" 
      >
    </asp:LinqDataSource>
    
  2. Legen Sie im DetailsView-Steuerelement die AutoGenerateEditButton-Eigenschaft, die AutoGenerateInsertButton-Eigenschaft und die AutoGenerateDeleteButton-Eigenschaft auf true fest.

  3. Um die im DetailsView-Steuerelement angezeigten Felder zu begrenzen und die Reihenfolge der Felder anzugeben, legen Sie die AutoGenerateRows-Eigenschaft auf false fest.

  4. Fügen Sie Felder für die Spalten Title, Theater, Rating und Review hinzu, und binden Sie diese an die entsprechenden Datenfelder.

    Das folgende Beispiel enthält das deklarative Markup für das DetailsView-Steuerelement.

    <asp:DetailsView 
      DataSourceID="LinqDataSource1" 
      DataKeyNames="MovieID" 
      AutoGenerateRows="false" 
      AutoGenerateEditButton="true"
      AutoGenerateInsertButton="true"
      AutoGenerateDeleteButton="true"
      AllowPaging="true" 
      ID="DetailsView1" 
      >
      <Fields>
        <asp:BoundField HeaderText="Title" DataField="Title" />
        <asp:BoundField HeaderText="Theater" DataField="Theater" />
        <asp:BoundField HeaderText="Number of Stars" DataField="Score" />
        <asp:BoundField HeaderText="Review" DataField="Review" />
      </Fields>
    </asp:DetailsView>
    

    Die Spalte MovieID wird aus der Datenquelle gemeinsam mit den anderen Spalten ausgewählt. Sie wird im DetailsView-Steuerelement jedoch nicht angezeigt, und der Benutzer kann ihre Werte nicht ändern. Die MovieID-Eigenschaft muss ausgewählt werden, damit das LinqDataSource-Steuerelement die Befehle zum Aktualisieren, Einfügen und Löschen von Daten automatisch erstellen kann.

    Beachten Sie, dass Sie keine Befehle für diese Datenoperationen angeben müssen.

  5. Speichern Sie die Änderungen, und drücken Sie STRG+F5, um die Seite in einem Browser anzuzeigen.

    Das DetailsView-Steuerelement zeigt die Felder des aktuellen Datensatzes der Tabelle MovieReviews an. Sie können Datensätze aktualisieren, einfügen und löschen, indem Sie auf die entsprechenden Schaltflächen des DetailsView-Steuerelements klicken.

Nächste Schritte

In dieser exemplarischen Vorgehensweise wurden die grundlegenden Funktionen zum Aktualisieren, Einfügen und Löschen von Datensätzen mit dem LinqDataSource-Steuerelement veranschaulicht. Sie können folgendermaßen vorgehen, um die weiteren Funktionen des LinqDataSource-Steuerelements kennen zu lernen:

Siehe auch

Konzepte

Übersicht über das LinqDataSource-Webserversteuerelement