Veri kaynağını konak denetimindeki verilerle güncelleştirme

Konak denetimini bir veri kaynağına bağlayabilir ve veri kaynağını denetimdeki verilerde yapılan değişikliklerle güncelleştirebilirsiniz. Bu işlemin iki ana adımı vardır:

  1. Bellek içi veri kaynağını denetimdeki değiştirilmiş verilerle güncelleştirin. Genellikle, bellek içi veri kaynağı bir , veya başka bir DataSetDataTableveri nesnesidir.

  2. Veritabanını bellek içi veri kaynağındaki değiştirilmiş verilerle güncelleştirin. Bu yalnızca veri kaynağı SQL Server veya Microsoft Office Access veritabanı gibi bir arka uç veritabanına bağlıysa geçerlidir.

    Konak denetimleri ve veri bağlama hakkında daha fazla bilgi için bkz . Konak öğelerine ve konak denetimlerine genel bakış ve Verileri Office çözümlerinde denetimlere bağlama.

    Şunlar için geçerlidir: Bu konudaki bilgiler, Excel ve Word için belge düzeyi projeler ve VSTO Eklenti projeleri için geçerlidir. Daha fazla bilgi için bkz. Office uygulaması ve proje türüne göre kullanılabilen özellikler.

Bellek içi veri kaynağını güncelleştirme

Varsayılan olarak, basit veri bağlamayı etkinleştiren konak denetimleri (word belgesindeki içerik denetimleri veya Excel çalışma sayfasındaki adlandırılmış aralık denetimi gibi), veri değişikliklerini bellek içi veri kaynağına kaydetmez. Yani, bir son kullanıcı konak denetimindeki bir değeri değiştirip denetimden uzaklaştığında, denetimdeki yeni değer otomatik olarak veri kaynağına kaydedilmez.

Verileri veri kaynağına kaydetmek için, çalışma zamanında belirli bir olaya yanıt olarak veri kaynağını güncelleştiren kod yazabilir veya denetimdeki değer değiştiğinde denetimi otomatik olarak veri kaynağını güncelleştirecek şekilde yapılandırabilirsiniz.

Bellek içi veri kaynağındaki değişiklikleri kaydetmeniz ListObject gerekmez. Bir ListObject denetimi verilere bağladığınızda, ListObject denetim ek kod gerektirmeden değişiklikleri bellek içi veri kaynağına otomatik olarak kaydeder.

Çalışma zamanında bellek içi veri kaynağını güncelleştirmek için

  • WriteValue Denetimi veri kaynağına bağlayan nesnesinin yöntemini Binding çağırın.

    Aşağıdaki örnek, Excel çalışma sayfasındaki bir NamedRange denetimde yapılan değişiklikleri veri kaynağına kaydeder. Bu örnekte, bir veri kaynağındaki bir NamedRange alana bağlı özelliğiyle Value2 adlı namedRange1 bir denetiminiz olduğu varsayılır.

    this.namedRange1.DataBindings["Value2"].WriteValue();
    

Bellek içi veri kaynağını otomatik olarak güncelleştirme

Ayrıca bir denetimi, bellek içi veri kaynağını otomatik olarak güncelleştirebilecek şekilde yapılandırabilirsiniz. Belge düzeyindeki bir projede bunu kod veya tasarımcı kullanarak yapabilirsiniz. VSTO Eklentisi projesinde kod kullanmanız gerekir.

Kod kullanarak bellek içi veri kaynağını otomatik olarak güncelleştirecek bir denetim ayarlamak için

  1. Denetimi veri kaynağına bağlayan nesnenin System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged modunu Binding kullanın. Veri kaynağını güncelleştirmek için iki seçenek vardır:

    • Denetim doğrulandığında veri kaynağını güncelleştirmek için bu özelliği System.Windows.Forms.DataSourceUpdateMode.OnValidation olarak ayarlayın.

    • Denetimin veriye bağlı özelliğinin değeri değiştiğinde veri kaynağını güncelleştirmek için bu özelliği System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged olarak ayarlayın.

      Not

      System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged seçeneği Word konak denetimleri için geçerli değildir çünkü Word belge değiştirme veya denetim değiştirme bildirimleri sunmaz. Ancak, bu seçenek Word belgelerindeki Windows Forms denetimleri için kullanılabilir.

      Aşağıdaki örnekte, denetimdeki değer değiştiğinde veri kaynağını otomatik olarak güncelleştirmek için bir NamedRange denetim yapılandırılır. Bu örnekte, bir veri kaynağındaki bir NamedRange alana bağlı özelliğiyle Value2 adlı namedRange1 bir denetiminiz olduğu varsayılır.

      this.namedRange1.DataBindings["Value2"].DataSourceUpdateMode = 
          DataSourceUpdateMode.OnPropertyChanged;
      

Tasarımcıyı kullanarak bellek içi veri kaynağını otomatik olarak güncelleştirecek bir denetim ayarlamak için

  1. Visual Studio'da, tasarımcıda Word belgesini veya Excel çalışma kitabını açın.

  2. Veri kaynağını otomatik olarak güncelleştirmek istediğiniz denetime tıklayın.

  3. Özellikler penceresinde (DataBindings) özelliğini genişletin.

  4. (Gelişmiş) özelliğinin yanındaki üç nokta düğmesine (VisualStudioEllipsesButton screenshot) tıklayın.

  5. Biçimlendirme ve Gelişmiş Bağlama iletişim kutusunda Veri Kaynağı Güncelleştirme Modu açılan listesine tıklayın ve aşağıdaki değerlerden birini seçin:

    • Denetim doğrulandığında veri kaynağını güncelleştirmek için OnValidation'ı seçin.

    • Denetimin veriye bağlı özelliğinin değeri değiştiğinde veri kaynağını güncelleştirmek için OnPropertyChanged öğesini seçin.

      Not

      Word belge değiştirme veya denetim değiştirme bildirimleri sunmadığından, OnPropertyChanged seçeneği Word konak denetimleri için geçerli değildir. Ancak, bu seçenek Word belgelerindeki Windows Forms denetimleri için kullanılabilir.

  6. Biçimlendirme ve Gelişmiş Bağlama iletişim kutusunu kapatın.

Veritabanını güncelleştirme

Bellek içi veri kaynağı bir veritabanıyla ilişkiliyse, veritabanını veri kaynağındaki değişikliklerle güncelleştirmeniz gerekir. Veritabanını güncelleştirme hakkında daha fazla bilgi için bkz . Verileri veritabanına geri kaydetme ve TableAdapter kullanarak verileri güncelleştirme.

Veritabanını güncellemek için

  1. EndEdit Denetim için yöntemini BindingSource çağırın.

    , BindingSource tasarım zamanında bir belgeye veya çalışma kitabına veriye bağlı denetim eklediğinizde otomatik olarak oluşturulur. denetimi BindingSource projenizde yazılan veri kümesine bağlar. Daha fazla bilgi için bkz . BindingSource bileşenine genel bakış.

    Aşağıdaki kod örneği, projenizin adlı customersBindingSourcebir BindingSource içerdiğini varsayar.

    this.customersBindingSource.EndEdit();
    
  2. Update Projenizde oluşturulan TableAdapter yöntemini çağırın.

    TableAdapter, tasarım zamanında bir belgeye veya çalışma kitabına veriye bağlı denetim eklediğinizde otomatik olarak oluşturulur. TableAdapter, projenizde yazılan veri kümesini veritabanına bağlar. Daha fazla bilgi için bkz . TableAdapter'a genel bakış.

    Aşağıdaki kod örneğinde, Northwind veritabanındaki Customers tablosuyla bağlantınız olduğu ve projenizde adlı customersTableAdapter bir TableAdapter ve adlı northwindDataSetbir yazılan veri kümesi bulunduğu varsayılır.

    this.customersTableAdapter.Update(this.northwindDataSet.Customers);