Freigeben über


Exemplarische Vorgehensweise: Einfache Datenbindung in Projekten auf Anwendungsebene

Aktualisiert: Juli 2008

Betrifft

Die Informationen in diesem Thema gelten nur für die angegebenen Projekte und Versionen von Visual Studio Tools for Office von Microsoft Office.

Projekttyp

  • Projekte auf Anwendungsebene

Microsoft Office-Version

  • Word 2007

Weitere Informationen hierzu finden Sie unter Verfügbare Features nach Anwendung und Projekttyp.

Ab Visual Studio 2008 Service Pack 1 (SP1) können Sie Daten an Hoststeuerelemente und Windows Forms-Steuerelemente in Projekten auf Anwendungsebene binden. In dieser exemplarischen Vorgehensweise wird veranschaulicht, wie einem Microsoft Office Word-Dokument Steuerelemente hinzugefügt werden, die zur Laufzeit an Daten gebunden werden.

In dieser exemplarischen Vorgehensweise werden die folgenden Aufgaben veranschaulicht:

  • Hinzufügen eines ContentControl-Steuerelements zu einem Dokument zur Laufzeit

  • Erstellen einer BindingSource, die das Steuerelement mit einer Instanz eines Datasets verbindet

  • Ermöglichen, dass Benutzer die Datensätze im Steuerelement mit Bildlauf anzeigen können

Hinweis:

Ihr Computer zeigt möglicherweise für einige der Elemente der Visual Studio-Benutzeroberfläche in der folgenden Anleitung andere Namen oder Standorte an. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Visual Studio-Einstellungen.

Vorbereitungsmaßnahmen

Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:

  • Visual Studio Tools for Office (eine optionale Komponente von Visual Studio 2008 Professional und Visual Studio Team System).

    Visual Studio Tools for Office wird standardmäßig mit den aufgeführten Versionen von Visual Studio installiert. Wie Sie überprüfen können, ob die Software installiert ist, erfahren Sie in Installieren von Visual Studio Tools for Office.

  • Word 2007.

  • Zugriff auf eine ausgeführte Instanz von SQL Server 2005 oder SQL Server 2005 Express, an die die AdventureWorksLT-Beispieldatenbank angefügt ist. Sie können die AdventureWorksLT-Datenbank von der CodePlex-Website herunterladen. Weitere Informationen zum Anhängen von Datenbanken finden Sie unter den folgenden Themen:

Erstellen eines neuen Projekts

Zunächst muss ein Add-In-Projekt für Word erstellt werden.

So erstellen Sie ein neues Projekt

  • Erstellen Sie mit Visual Basic oder C# ein Word 2007-Add-in-Projekt mit dem Namen Füllen von Dokumenten aus einer Datenbank.

    Weitere Informationen hierzu finden Sie unter Gewusst wie: Erstellen von Visual Studio Tools for Office-Projekte.

    In Visual Studio wird die Datei ThisAddIn.vb oder ThisAddIn.cs geöffnet, und das Projekt Füllen von Dokumenten aus einer Datenbank wird dem Projektmappen-Explorer hinzugefügt.

Erstellen einer Datenquelle

Verwenden Sie das Datenquellenfenster, um dem Projekt ein typisiertes Dataset hinzuzufügen.

So fügen Sie dem Projekt ein typisiertes Dataset hinzu

  1. Klicken Sie im Menü Daten auf Neue Datenquelle hinzufügen.

    Der Assistent zum Konfigurieren von Datenquellen wird geöffnet.

  2. Klicken Sie auf Datenbank und anschließend auf Weiter.

  3. Wenn eine Verbindung mit der AdventureWorksLT-Datenbank vorhanden ist, wählen Sie diese Verbindung aus, und klicken Sie auf Weiter.

    Klicken Sie andernfalls auf Neue Verbindung, und erstellen Sie die neue Verbindung im Dialogfeld Verbindung hinzufügen. Weitere Informationen hierzu finden Sie unter Gewusst wie: Herstellen von Verbindungen mit SQL Server-Datenbanken.

  4. Klicken Sie auf der Seite Verbindungszeichenfolge in der Anwendungskonfigurationsdatei speichern auf Weiter.

  5. Erweitern Sie auf der Seite Datenbankobjekte auswählen den Knoten Tabellen, und wählen Sie Customer (SalesLT) aus.

  6. Klicken Sie auf Fertig stellen.

    Die Datei AdventureWorksLTDataSet.xsd wird dem Projektmappen-Explorer hinzugefügt. Diese Datei definiert die folgenden Elemente:

    • Ein typisiertes Dataset mit dem Namen AdventureWorksLTDataSet. Dieses Dataset stellt den Inhalt der Customer (SalesLT)-Tabelle in der AdventureWorksLT-Datenbank dar.

    • Ein TableAdapter mit dem Namen CustomerTableAdapter. Dieser TableAdapter kann zum Lesen von Daten aus und zum Schreiben von Daten in AdventureWorksLTDataSet verwendet werden. Weitere Informationen hierzu finden Sie unter Übersicht über TableAdapters.

    Zu einem späteren Zeitpunkt in dieser exemplarischen Vorgehensweise verwenden Sie beide Objekte.

Erstellen von Steuerelementen und Binden von Steuerelementen an Daten

Die Benutzeroberfläche zum Anzeigen von Datensätzen hat in dieser exemplarischen Vorgehensweise einen sehr begrenzten Umfang, und sie wird direkt im Dokument erstellt. In einem ContentControl wird jeweils ein einzelner Datensatz angezeigt, und mit zwei Button-Steuerelementen können Sie in den Datensätzen einen Bildlauf nach oben und unten durchführen. Das Inhaltssteuerelement stellt mit einer BindingSource eine Verbindung des Steuerelements mit der Datenbank her.

Weitere Informationen zum Binden von Steuerelementen an Daten finden Sie unter Binden von Daten an Steuerelemente.

So erstellen Sie die Benutzeroberfläche im Dokument

  1. Deklarieren Sie in der ThisAddIn-Klasse die folgenden Steuerelemente, um die Customer-Tabelle der AdventureWorksLTDataSet-Datenbank anzuzeigen und einen Bildlauf zu ermöglichen.

    Private adventureWorksDataSet As AdventureWorksLTDataSet
    Private customerTableAdapter As AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter
    Private customerBindingSource As System.Windows.Forms.BindingSource
    Private customerContentControl As Microsoft.Office.Tools.Word.RichTextContentControl
    Private WithEvents button1 As Microsoft.Office.Tools.Word.Controls.Button
    Private WithEvents button2 As Microsoft.Office.Tools.Word.Controls.Button
    
    private AdventureWorksLTDataSet adventureWorksDataSet;
    private AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter customerTableAdapter;
    private System.Windows.Forms.BindingSource customerBindingSource;
    private Microsoft.Office.Tools.Word.RichTextContentControl customerContentControl;
    private Microsoft.Office.Tools.Word.Controls.Button button1;
    private Microsoft.Office.Tools.Word.Controls.Button button2;
    
  2. Fügen Sie in der ThisAddIn_Startup-Methode den folgenden Code hinzu, um das Dataset zu initialisieren und es mit Daten aus der AdventureWorksLTDataSet-Datenbank zu füllen.

    Me.adventureWorksDataSet = New AdventureWorksLTDataSet()
    Me.customerTableAdapter = New AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter()
    Me.customerTableAdapter.Fill(Me.adventureWorksDataSet.Customer)
    Me.customerBindingSource = New System.Windows.Forms.BindingSource()
    
    this.adventureWorksDataSet = new AdventureWorksLTDataSet();
    this.customerTableAdapter = new AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter();
    this.customerTableAdapter.Fill(this.adventureWorksDataSet.Customer);
    this.customerBindingSource = new System.Windows.Forms.BindingSource();
    
  3. Fügen Sie der ThisAddIn_Startup-Methode folgenden Code hinzu: Dadurch wird ein Hostelement generiert, das das Dokument erweitert. Weitere Informationen hierzu finden Sie unter Erweitern von Word-Dokumenten und Excel-Arbeitsmappen in Add-Ins auf Anwendungsebene zur Laufzeit.

    Dim currentDocument As Word.Document = Me.Application.ActiveDocument
    Dim extendedDocument As Document = currentDocument.GetVstoObject()
    
    Word.Document currentDocument = this.Application.ActiveDocument;
    Document extendedDocument = currentDocument.GetVstoObject();
    
  4. Definieren Sie am Anfang des Dokuments mehrere Bereiche. Diese Bereiche geben die Stellen zum Einfügen von Text und Positionieren der Steuerelemente an.

    extendedDocument.Paragraphs(1).Range.InsertParagraphBefore()
    extendedDocument.Paragraphs(1).Range.InsertParagraphBefore()
    extendedDocument.Paragraphs(1).Range.Text = "The companies listed in the AdventureWorksLT database:   "
    
    extendedDocument.Paragraphs(2).Range.Text = "  "
    
    Dim range1 As Word.Range = extendedDocument.Paragraphs(2).Range.Characters.First
    Dim range2 As Word.Range = extendedDocument.Paragraphs(2).Range.Characters.Last
    Dim range3 As Word.Range = extendedDocument.Paragraphs(1).Range.Characters.Last
    
    extendedDocument.Paragraphs[1].Range.InsertParagraphBefore();
    extendedDocument.Paragraphs[1].Range.InsertParagraphBefore();
    extendedDocument.Paragraphs[1].Range.Text = 
        "The companies listed in the AdventureWorksLT database:   \n";
    extendedDocument.Paragraphs[2].Range.Text = "  "; 
    
    Word.Range range1 = extendedDocument.Paragraphs[2].Range.Characters.First;
    Word.Range range2 = extendedDocument.Paragraphs[2].Range.Characters.Last;
    Word.Range range3 = extendedDocument.Paragraphs[1].Range.Characters.Last;
    
  5. Fügen Sie den zuvor definierten Bereichen die Steuerelemente der Benutzeroberfläche hinzu.

    Me.button1 = extendedDocument.Controls.AddButton(range1, 60, 15, "1")
    Me.button1.Text = "Previous"
    Me.button2 = extendedDocument.Controls.AddButton(range2, 60, 15, "2")
    Me.button2.Text = "Next"
    
    Me.customerContentControl = extendedDocument.Controls.AddRichTextContentControl( _
        range3, _
        "richTextContentControl1")
    
    this.button1 = extendedDocument.Controls.AddButton(range1, 60, 15, "1");
    this.button1.Text = "Previous";
    this.button2 = extendedDocument.Controls.AddButton(range2, 60, 15, "2");
    this.button2.Text = "Next";
    
    this.customerContentControl = extendedDocument.Controls.AddRichTextContentControl(
        range3,
        "richTextContentControl1");
    
  6. Binden Sie das Inhaltssteuerelement mit der BindingSource an AdventureWorksLTDataSet. C#-Entwickler müssen zwei Ereignishandler für die Button-Steuerelemente hinzufügen.

    Me.customerBindingSource.DataSource = Me.adventureWorksDataSet.Customer
    Me.customerContentControl.DataBindings.Add( _
        "Text", _
        Me.customerBindingSource, _
        "CompanyName", _
        True, _
        Me.customerContentControl.DataBindings.DefaultDataSourceUpdateMode)
    
    this.customerBindingSource.DataSource = this.adventureWorksDataSet.Customer;
    this.customerContentControl.DataBindings.Add(
        "Text", 
        this.customerBindingSource, 
        "CompanyName", 
        true,
        this.customerContentControl.DataBindings.DefaultDataSourceUpdateMode);
    
    this.button1.Click += new EventHandler(button1_Click);
    this.button2.Click += new EventHandler(button2_Click);
    
  7. Fügen Sie den folgenden Code zum Navigieren durch die Datensätze hinzu.

    Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
        Handles button1.Click
        Me.customerBindingSource.MovePrevious()
    End Sub
    
    Private Sub button2_Click(ByVal sender As Object, ByVal e As EventArgs) _
        Handles button2.Click
        Me.customerBindingSource.MoveNext()
    End Sub
    
    void button1_Click(object sender, EventArgs e)
    {
        this.customerBindingSource.MovePrevious();
    }
    
    void button2_Click(object sender, EventArgs e)
    {
        this.customerBindingSource.MoveNext();
    }
    

Testen des Add-Ins

Beim Öffnen von Word werden im Inhaltssteuerelement Daten aus dem AdventureWorksLTDataSet-Dataset angezeigt. Sie können einen Bildlauf durch die Datensätze durchführen, indem Sie auf die Schaltflächen Weiter und Zurück klicken.

So testen Sie das Add-In

  1. Drücken Sie F5.

    Das Inhaltssteuerelement customerContentControl wird erstellt und mit Daten gefüllt. Gleichzeitig werden dem Projekt ein Datasetobjekt mit dem Namen adventureWorksLTDataSet und eine BindingSource mit dem Namen customerBindingSource hinzugefügt. Das ContentControl ist an die BindingSource gebunden, die wiederum an das Datasetobjekt gebunden ist.

  2. Klicken Sie auf die Schaltflächen Weiter und Zurück, um einen Bildlauf durch die Datensätze durchzuführen.

Siehe auch

Aufgaben

Gewusst wie: Auffüllen von Arbeitsblättern mit Daten aus einer Datenbank

Gewusst wie: Auffüllen von Dokumenten mit Daten aus einer Datenbank

Gewusst wie: Auffüllen von Dokumente mit Daten aus Diensten

Gewusst wie: Auffüllen von Dokumenten mit Daten von Objekten

Gewusst wie: Ausführen eines Bildlaufs durch Datenbankdatensätze in einem Arbeitsblatt

Gewusst wie: Aktualisieren einer Datenquelle mit Daten eines Hoststeuerelements

Exemplarische Vorgehensweise: Einfache Datenbindung in Projekten auf Dokumentebene

Exemplarische Vorgehensweise: Komplexe Datenbindung in Projekten auf Dokumentebene

Gewusst wie: Auffüllen von Dokumenten mit Daten von Objekten

Gewusst wie: Aktualisieren einer Datenquelle mit Daten eines Hoststeuerelements

Konzepte

Binden von Daten an Steuerelemente

Übersicht über die Verwendung lokaler Datenbankdateien in Office-Lösungen

Übersicht über Datenquellen

Übersicht über das Anzeigen von Daten

Übersicht über die Verwendung lokaler Datenbankdateien in Office-Lösungen

Übersicht über das Verbinden mit Daten in Visual Studio

Referenz

Übersicht über die BindingSource-Komponente

Weitere Ressourcen

Daten in Office-Lösungen

Änderungsprotokoll

Date

Versionsgeschichte

Grund

Juli 2008

Thema hinzugefügt.

SP1-Featureänderung.