Udostępnij za pośrednictwem


Wiązanie danych do formantów w rozwiązaniach pakietu Office

Można wiązać formanty Windows Forms i kontroli host na dokument programu Microsoft Office Word lub arkusz programu Microsoft Office Excel do źródła danych, więc formanty automatycznie wyświetlić dane.Dane można powiązać formantów w projektów na poziomie aplikacji i poziomie dokumentu.

Zastosowanie: Informacje przedstawione w tym temacie mają zastosowanie do projektów na poziomie dokumentu i aplikacji obsługiwanych w pakietach Office 2013 i Office 2010. Zobacz Funkcje dostępne w aplikacjach pakietu Office i typ projektu.

Formanty hosta rozszerzyć obiektów, które są w Word i Excel modeli obiektów, takich jak formanty zawartości w programie Word i nazwane zakresy w programie Excel.Aby uzyskać więcej informacji, zobacz Przegląd obiektów hosta i formantów hosta.

Windows Forms i formantami hosta należy użyć modelu wiązania danych Windows Forms, który obsługuje zarówno wiązania danych proste i wiązania danych złożonych do źródeł danych, takich jak tabele zestawów danych i danych.Aby uzyskać pełne informacje na temat modelu powiązania danych w Windows Forms, zobacz Wiązanie danych i formularze systemu Windows.

łącze do wideo Aby wyświetlić pokrewne wideo demonstracyjne, zobacz jak zrobić I: zużywają bazy danych w programie Excel?.

Proste powiązania danych

Powiązanie proste danych istnieje, gdy właściwość formant jest powiązany element danych, na przykład wartości w tabeli danych.Na przykład NamedRange formant ma Value2 właściwość, która może być związany z polem w zestawie danych.Po zmianie pola w zestawie danych, zmienia się również wartość nazwanego zakresuWszystkie formanty, host, z wyjątkiem XMLNodes kontroli, wsparcie powiązania danych proste.XMLNodes Kontroli jest kolekcją, i dlatego nie obsługuje wiązania z danymi.

Aby wykonać powiązanie danych proste do kontroli hosta, należy dodać Binding do DataBindings właściwości formantu.A Binding obiekt reprezentuje proste powiązanie między wartością właściwości formantu i wartość elementu danych.

Poniższy przykład ilustruje sposób powiązać Value2 właściwość do elementu danych w projekcie na poziomie dokumentu.

Dim binding1 As New Binding("Value2", ds, "Customers.Names", True)
namedRange1.DataBindings.Add(binding1)
Binding binding1 = new Binding("Value2", ds, "Customers.Names", true);
namedRange1.DataBindings.Add(binding1);

Aby instruktaże, który pokazuje powiązania danych prosty, zobacz Wskazówki: proste powiązanie danych w projektach na poziomie dokumentów dla projektu na poziomie dokumentu i Wskazówki: proste powiązanie danych w aplikacjach na poziomie dokumentów dla projektu na poziomie aplikacji.

Złożone powiązania danych

Wiązanie złożonych danych istnieje, gdy właściwość formant jest powiązany z więcej niż jeden element danych, na przykład wiele kolumn w tabeli danych.ListObject , Aby program Excel jest jedynym formantem hosta obsługującego wiązania danych złożonych.Istnieje również wiele formantów Windows Forms, które obsługuje wiązania danych złożonych, takich jak DataGridView kontroli.

Aby wykonać powiązanie złożonych danych, należy ustawić DataSource właściwość formantu Aby obiekt źródła danych, który jest obsługiwany przez powiązanie danych złożonych.Na przykład DataSource właściwość ListObject formant może być związany z wielu kolumn w tabeli danych.Wszystkie dane w tabeli danych pojawia się w ListObject kontroli i jako dane w tabeli zmienia dane ListObject również się zmienia.Aby uzyskać listę źródeł danych, które służy do wiązania danych złożonych, zobacz Źródła danych obsługiwane przez formularze systemu Windows.

Poniższy przykład kodu tworzy DataSet z dwoma DataTable obiektów i wypełnia jedną z tabel z danymi.Kod następnie wiąże ListObject do tabeli, która zawiera dane.Ten przykład dotyczy projektu poziomie dokumentu programu Excel.

Private Sub ListObject_DataSourceAndMember()
        ' Create a DataSet and two DataTables. 
        Dim ordersDataSet As New DataSet("ordersDataSet")
        Dim tableCustomers As New DataTable("Customers")
        Dim tableProducts As New DataTable("Products")
        ordersDataSet.Tables.Add(tableCustomers)
        ordersDataSet.Tables.Add(tableProducts)

        ' Add a data to the Customers DataTable.
        tableCustomers.Columns.Add(New DataColumn("LastName"))
        tableCustomers.Columns.Add(New DataColumn("FirstName"))
        Dim dr As DataRow = tableCustomers.NewRow()
        dr("LastName") = "Chan"
        dr("FirstName") = "Gareth"
        tableCustomers.Rows.Add(dr)

        ' Create a list object. 
        Dim List1 As Microsoft.Office.Tools.Excel.ListObject = _
            Me.Controls.AddListObject(Me.Range( _
            "A1"), "Customers")

        ' Bind the list object to the Customers table.
        List1.AutoSetDataBoundColumnHeaders = True
        List1.DataSource = ordersDataSet
        List1.DataMember = "Customers" 

    End Sub
private void ListObject_DataSourceAndMember()
{
    // Create a DataSet and two DataTables.
    DataSet ordersDataSet = new DataSet("ordersDataSet");
    DataTable tableCustomers = new DataTable("Customers");
    DataTable tableProducts = new DataTable("Products");
    ordersDataSet.Tables.Add(tableCustomers);
    ordersDataSet.Tables.Add(tableProducts);

    // Add a data to the Customers DataTable.
    tableCustomers.Columns.Add(new DataColumn("LastName"));
    tableCustomers.Columns.Add(new DataColumn("FirstName"));
    DataRow dr = tableCustomers.NewRow();
    dr["LastName"] = "Chan";
    dr["FirstName"] = "Gareth";
    tableCustomers.Rows.Add(dr);

    // Create a list object.
    Microsoft.Office.Tools.Excel.ListObject list1 = 
        this.Controls.AddListObject(
        this.Range["A1"], "Customers");

    // Bind the list object to the Customers table.
    list1.AutoSetDataBoundColumnHeaders = true;
    list1.DataSource = ordersDataSet;
    list1.DataMember = "Customers";
}

Aby uzyskać opisy, które wskazują wiązania złożonych danych, zobacz Wskazówki: złożone powiązanie danych w projektach na poziomie dokumentów dla projektu na poziomie dokumentu i Wskazówki: złożone powiązanie danych w aplikacjach na poziomie dokumentów dla projektu na poziomie aplikacji.

Wyświetlanie danych w dokumentach i skoroszytów

W przypadku projektów na poziomie dokumentu, można użyć Źródła danych okno, aby łatwo dodawać formanty powiązane z danymi do dokumentów lub skoroszytów, ten sam sposób, można go użyć do Windows Forms.Aby uzyskać więcej informacji na temat korzystania z Źródła danych okna, zobacz Powiązywanie formantów formularzy systemu Windows z danymi w Visual Studio i Okno źródła danych.

Przeciąganie formantów w oknie źródła danych

Formant jest tworzony w dokumencie, gdy obiekt zostanie przeciągnięty na go z Źródła danych okna.Typ formantu, który jest tworzony zależy od tego, czy są wiążące pojedynczej kolumny danych lub kilka kolumn danych.

Dla programu Excel NamedRange formant nie zostanie utworzony w arkuszu dla każdego indywidualnego pola i ListObject kontroli jest tworzony dla każdego zakresu danych, która zawiera wiele wierszy i kolumn.Można zmienić to ustawienie domyślne, wybierając w tabeli lub pola w Źródła danych okna, a następnie wybierając inny formant z listy rozwijanej.

A ContentControl formantu zostanie dodany do dokumentów.Typ formantu zawartości zależy od typu danych wybranego pola.

Wiązanie danych projektów na poziomie dokumentu w czasie projektowania

Poniższe tematy zawierają przykłady powiązania danych w czasie projektowania:

Powiązanie danych w poziomie aplikacji

W przypadku projektów na poziomie aplikacji można dodawać formanty tylko w czasie wykonywania.Poniższe tematy zawierają przykłady powiązania danych w czasie wykonywania:

Aktualizowanie danych powiązanego z formantami hosta

Powiązanie danych między źródłem danych i sterowania hosta polega na aktualizacji danych dwukierunkowe.W danych proste powiązanie, zmiany wprowadzone w źródle danych zostaną automatycznie odzwierciedlone w formancie hosta, ale zmiany w formancie hosta wymagają jawnym wywołaniem zaktualizować źródło danych.Dlatego, że w niektórych przypadkach, zmiany w jednym polu powiązany z danymi nie są akceptowane chyba że towarzyszy im zmiany w innym polu powiązany z danymi.Na przykład może mieć dwa pola, jeden na wiek i lata doświadczenia.Doświadczenia nie może przekraczać wiek.Użytkownik nie może zaktualizować wieku od 50 do 25, a następnie doświadczenia od 30 do 10 chyba, że on lub ona wprowadza zmiany w tym samym czasie.Aby rozwiązać ten problem, pola z danych proste powiązanie nie są aktualizowane, dopóki kod wyraźnie wysyła aktualizacje.

Aby zaktualizować źródło danych z formantami hosta, które umożliwiają tworzenie prostych powiązań, należy wysłać aktualizacje do źródła danych w pamięci (takie jak DataSet lub DataTable) i do bazy danych zaplecza, jeśli rozwiązanie używa jednego.

Nie trzeba jawnie zaktualizować źródło danych w pamięci podczas wykonywania przy użyciu wiązania danych złożonych ListObject kontroli.W takim przypadku zmiany są automatycznie wysyłane do źródła danych w pamięci, bez dodatkowego kodu.

Aby uzyskać więcej informacji, zobacz Porady: aktualizowanie źródła danych danymi z formanty hosta.

Zobacz też

Zadania

Porady: tworzenie prostego formantu powiązanego na formularzu systemu Windows

Porady: aktualizowanie danych za pomocą TableAdapter

Koncepcje

Wiązanie danych i formularze systemu Windows

Powiązywanie formantów formularzy systemu Windows z danymi w Visual Studio

Zapisywanie danych w zestawach danych

Buforowanie danych

Inne zasoby

Jak I: zużywają bazy danych w programie Excel?

Dane w rozwiązaniach pakietu Office