Aktualizowanie źródła danych przy użyciu danych z kontrolki hosta
Kontrolkę hosta można powiązać ze źródłem danych i zaktualizować źródło danych za pomocą zmian wprowadzonych w kontrolce. Ten proces obejmuje dwa główne kroki:
Zaktualizuj źródło danych w pamięci przy użyciu zmodyfikowanych danych w kontrolce. Zazwyczaj źródłem danych w pamięci jest , lub innym obiektem DataSetDataTabledanych.
Zaktualizuj bazę danych przy użyciu zmienionych danych w źródle danych w pamięci. Ma to zastosowanie tylko wtedy, gdy źródło danych jest połączone z bazą danych zaplecza, taką jak program SQL Server lub baza danych programu Microsoft Office Access.
Aby uzyskać więcej informacji na temat kontrolek hosta i powiązania danych, zobacz Omówienie elementów hosta i kontrolek hostów oraz Wiązanie danych z kontrolkami w rozwiązaniach pakietu Office.
Dotyczy: informacje w tym temacie dotyczą projektów na poziomie dokumentu i projektów dodatków VSTO dla programów Excel i Word. Aby uzyskać więcej informacji, zobacz Funkcje dostępne przez aplikacja pakietu Office lication i typ projektu.
Aktualizowanie źródła danych w pamięci
Domyślnie kontrolki hosta, które umożliwiają proste powiązanie danych (takie jak kontrolki zawartości w dokumencie programu Word lub nazwanej kontrolce zakresu w arkuszu programu Excel) nie zapisują zmian danych w źródle danych w pamięci. Oznacza to, że gdy użytkownik końcowy zmienia wartość w kontrolce hosta, a następnie przechodzi z dala od kontrolki, nowa wartość w kontrolce nie jest automatycznie zapisywana w źródle danych.
Aby zapisać dane w źródle danych, możesz napisać kod, który aktualizuje źródło danych w odpowiedzi na określone zdarzenie w czasie wykonywania, lub można skonfigurować kontrolkę tak, aby automatycznie aktualizowała źródło danych po zmianie wartości kontrolki.
Nie trzeba zapisywać ListObject zmian w źródle danych w pamięci. Po powiązaniu kontrolki ListObject z danymi kontrolka ListObject automatycznie zapisuje zmiany w źródle danych w pamięci bez konieczności dodatkowego kodu.
Aby zaktualizować źródło danych w pamięci w czasie wykonywania
Wywołaj metodę WriteValue Binding obiektu, który wiąże kontrolkę ze źródłem danych.
Poniższy przykład zapisuje zmiany wprowadzone w NamedRange kontrolce w arkuszu programu Excel w źródle danych. W tym przykładzie przyjęto założenie, że masz kontrolkę NamedRange o nazwie
namedRange1
z jej Value2 właściwością powiązaną z polem w źródle danych.
Automatyczne aktualizowanie źródła danych w pamięci
Można również skonfigurować kontrolkę tak, aby automatycznie aktualizowała źródło danych w pamięci. W projekcie na poziomie dokumentu można to zrobić przy użyciu kodu lub projektanta. W projekcie dodatku VSTO należy użyć kodu.
Aby ustawić kontrolkę w celu automatycznego aktualizowania źródła danych w pamięci przy użyciu kodu
Użyj trybu Binding System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged obiektu, który wiąże kontrolkę ze źródłem danych. Istnieją dwie opcje aktualizowania źródła danych:
Aby zaktualizować źródło danych po zweryfikowaniu kontrolki, ustaw tę właściwość na Wartość System.Windows.Forms.DataSourceUpdateMode.OnValidation.
Aby zaktualizować źródło danych, gdy wartość właściwości powiązanej z danymi kontrolki zmienia się, ustaw tę właściwość na System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged.
Uwaga
Opcja System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged nie ma zastosowania do kontrolek hosta programu Word, ponieważ program Word nie oferuje powiadomień o zmianie dokumentu ani zmianie kontrolki. Tę opcję można jednak użyć w przypadku kontrolek Windows Forms w dokumentach programu Word.
Poniższy przykład konfiguruje kontrolkę NamedRange tak, aby automatycznie aktualizowała źródło danych, gdy wartość w kontrolce ulegnie zmianie. W tym przykładzie przyjęto założenie, że masz kontrolkę NamedRange o nazwie
namedRange1
z jej Value2 właściwością powiązaną z polem w źródle danych.
Aby ustawić kontrolkę, aby automatycznie zaktualizować źródło danych w pamięci przy użyciu projektanta
W programie Visual Studio otwórz dokument programu Word lub skoroszyt programu Excel w projektancie.
Kliknij kontrolkę, którą chcesz automatycznie zaktualizować źródło danych.
W oknie Właściwości rozwiń właściwość (DataBindings).
Obok właściwości (Zaawansowane) kliknij przycisk wielokropka ().
W oknie dialogowym Formatowanie i powiązanie zaawansowane kliknij listę rozwijaną Tryb aktualizacji źródła danych i wybierz jedną z następujących wartości:
Aby zaktualizować źródło danych po zweryfikowaniu kontrolki, wybierz pozycję OnValidation.
Aby zaktualizować źródło danych, gdy wartość właściwości powiązanej z danymi kontrolki ulegnie zmianie, wybierz pozycję OnPropertyChanged.
Uwaga
Opcja OnPropertyChanged nie ma zastosowania do kontrolek hosta programu Word, ponieważ program Word nie oferuje powiadomień o zmianie dokumentu ani zmianie kontroli. Tę opcję można jednak użyć w przypadku kontrolek Windows Forms w dokumentach programu Word.
Zamknij okno dialogowe Formatowanie i powiązanie zaawansowane.
Aktualizowanie bazy danych
Jeśli źródło danych w pamięci jest skojarzone z bazą danych, musisz zaktualizować bazę danych przy użyciu zmian w źródle danych. Aby uzyskać więcej informacji na temat aktualizowania bazy danych, zobacz Zapisywanie danych z powrotem w bazie danych i Aktualizowanie danych przy użyciu elementu TableAdapter .
Aby zaktualizować bazę danych
Wywołaj metodę EndEdit kontrolki BindingSource .
Element BindingSource jest generowany automatycznie podczas dodawania kontrolki powiązanej z danymi do dokumentu lub skoroszytu w czasie projektowania. Kontrolka BindingSource łączy kontrolkę z wpisanym zestawem danych w projekcie. Aby uzyskać więcej informacji, zobacz BindingSource component overview (Omówienie składnika BindingSource).
W poniższym przykładzie kodu przyjęto założenie, że projekt zawiera BindingSource nazwę
customersBindingSource
.Wywołaj metodę
Update
wygenerowanego obiektu TableAdapter w projekcie.Kontrolka TableAdapter jest generowana automatycznie podczas dodawania kontrolki powiązanej z danymi do dokumentu lub skoroszytu w czasie projektowania. Narzędzie TableAdapter łączy typowy zestaw danych w projekcie z bazą danych. Aby uzyskać więcej informacji, zobacz Omówienie funkcji TableAdapter.
W poniższym przykładzie kodu przyjęto założenie, że masz połączenie z tabelą Customers w bazie danych Northwind i że projekt zawiera tabelę TableAdapter o nazwie
customersTableAdapter
i typowany zestaw danych o nazwienorthwindDataSet
.
Powiązana zawartość
- Wiązanie danych z kontrolkami w rozwiązaniach pakietu Office
- Zapisywanie danych z powrotem w bazie danych
- Aktualizowanie danych za pomocą adaptera TableAdapter
- Instrukcje: przewijanie rekordów bazy danych w arkuszu
- Instrukcje: wypełnianie arkuszy danymi z bazy danych
- Instrukcje: wypełnianie dokumentów danymi z obiektów
- Instrukcje: wypełnianie dokumentów danymi z bazy danych
- Instrukcje: wypełnianie dokumentów danymi z usług