Office Çözümlerinde Verileri Denetimlere Bağlama

Microsoft Office Word belgesi veya Microsoft Office Excel çalışma sayfasındaki Windows Forms denetimlerini ve konak kontrolleri'ni veri kaynağına bağlayabilirsiniz, böylece denetimler otomatik olarak veriyi görüntüler. Uygulama ve belge düzeyi projelerinin her ikisinde de veriyi konak kontrollerine ve Windows Forms denetimlerine bağlayabilirsiniz.

Uygulama hedefi: Bu konudaki bilgiler, Office 2013 ve Office 2010 için belge düzeyi projeler ve uygulama düzeyi projelere yöneliktir. Daha fazla bilgi edinmek için, bkz. Office Uygulaması ve Proje Türüne Göre Kullanılabilir Özellikler.

Konak kontrolleri, Word ve Excel nesne modellerindeki nesneleri genişletir, örn. Word'deki içerik denetimleri ve Excel'deki isimlendirilmiş aralıklar.Daha fazla bilgi için bkz. Ana Bilgisayar Öğelerine ve Denetimlerine Genel Bakış.

Windows Forms ve konak kontrollerinin her ikisi de, veri kümeleri ve veri tabloları gibi veri kaynaklarına basit veri bağlama ve karmaşık veri bağlama'yı destekleyen Windows Forms veri bağlama modelini kullanır. Windows Forms'taki veri bağlama modelleri hakkında tüm bilgi için, bkz. Veri Bağlama ve Windows Forms.

video bağlantısı İlgili video gösterimi için bkz: nasıl yapmak ı: tüketen veritabanı verileri Excel'de?.

Basit Veri Bağlama

Basit veri bağlama, denetim özelliğini, veri tablosundaki değer gibi tek bir veri öğesine bağlandığında oluşur.Örneğin, NamedRange denetimi veri kümesindeki bir alana bağlanabilen Value2 özelliğine sahiptir.Veri kümesindeki alan değiştiğinde, isimlendirilmiş aralıktaki değer de değişir.XMLNodes denetimi dışındaki tüm konak denetimleri basit veri bağlamayı destekler.XMLNodes denetimi bir koleksiyondur ve böylece veri bağlamayı desteklemez.

Konak kontrolüne veri bağlamayı gerçekleştirmek için, denetimin [DataBindings] özelliğine T:System.Windows.Forms.Binding ekleyin.Binding nesnesi, denetimin özellik değeri ve veri öğesinin değeri arasında basit veri bağlamasını sunar.

Aşağıdaki örnekte, belge düzeyi projesindeki veri öğesine Value2 özelliğinin nasıl bağlanacağı gösterilmektedir.

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);

Basit veri bağlamayı gösteren anlatımlar amacıyla, belge düzeyi projeleri için bkz. İzlenecek Yol: Belge Düzeyi Projede Basit Veri Bağlama, uygulama düzeyi projeleri için bkz. İzlenecek Yol: Uygulama Düzeyi Projede Basit Veri Bağlama.

Karmaşık Veri Bağlama

Karmaşık veri bağlama, denetim özelliğini, veri tablosundaki çoklu sütunlar gibi birden çok veri öğesine bağlandığında oluşur.Excel için ListObject denetimi, karmaşık veri bağlamayı destekleyen tek konak kontrolüdür.Ayrıca karmaşık veri bağlamayı destekleyen birçok Windows Forms denetimleri vardır, örn. DataGridView denetimi.

Karmaşık veri bağlamayı gerçekleştirmek için, denetimin DataSource özelliğini, karmaşık veri bağlama tarafından desteklenen veri kaynağı nesnesine ayarlayın.Örneğin, ListObject denetiminin DataSource özelliği, veri tablosunda çoklu sütunlara bağlanabilir.Veri tablosundaki verilen tümü ListObject denetiminde görünür ve veri tablosundaki veri değiştiğinde, ListObject de değişir. Karmaşık veri bağlaması için kullanabileceğiniz veri kaynaklarının bir listesi için, bkz. Windows Forms Tarafından Desteklenen Veri Kaynakları.

Aşağıdaki kod örneği, iki DataTable nesnesiyle birlikte DataSet oluşturur ve tablolardan birini veriyle doldurur.Kod daha sonra ListObject'i veri içeren tabloya bağlar.Bu örnek, Excel belge düzeyi projesi içindir.

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";
}

Karmaşık veri bağlamayı gösteren anlatımları üzerine, belge düzeyi projeleri için bkz. İzlenecek Yol: Belge Düzeyi Projede Karmaşık Veri Bağlama, uygulama düzeyi projeleri için bkz. İzlenecek Yol: Uygulama Düzeyi Projede Karmaşık Veri Bağlama.

Belgelerde ve Çalışma Kitaplarında Veriyi Görüntüleme

Belge düzeyi projelerinde, Veri Kaynakları penceresini, belgenize veya çalışma kitaplarınıza veriye bağlı denetimleri kolayca eklemek için, Windows Forms için kullanıdığınız yollarda kullanabilirsiniz.Veri Kaynakları penceresini kullanma hakkında daha fazla bilgi için bkz. Visual Studio'da Verilere Windows Forms Denetimleri Bağlama ve Veri Kaynakları Penceresi.

Veri Kaynakları Penceresinden Denetimleri Sürükleme

Veri Kaynakları penceresinden bir nesneyi sürüklediğinizde belgenizde bir denetim oluşturulur.Oluşturulan denetimin türü, verinin tek ya da çoklu sütünlarını bağlamanıza bağlıdır.

Excel'de, her tek alan için NamedRange denetimi çalışma sayfasında oluşturulur ve ListObject denetimi, çoklu satır ve sütunlar içeren her veri aralığı için yaratılır.Veri Kaynakları penceresinden tablo veya alanı seçip sonra açılır listeden farklı bir denetim tercih ederek bu varsayılanı değiştirebilirsiniz.

ContentControl denetimi belgeye eklenir.İçerik denetiminin türü seçtiğiniz alanın veri türüne bağlıdır.

Belge Düzeyi Projelerinde Tasarım Zamanında Denetim Ekleme

Aşağıdaki konularda tasarım zamanında veri bağlama örnekleri gösterilmektedir.

Uygulama Düzeyi Projelerinde Veri Bağlama

Ugulama düzeyi projesinde, denetimleri sadece çalışma zamanında ekleyebilirsiniz. Aşağıdaki konularda çalışma zamanında veri bağlama örnekleri gösterilmektedir.

Konak Kontrollerine Bağlı Olan Veriyi Güncelleme

Veri kaynağı ve konak kontrolü arasında veri bağlama iki yönlü veri güncellemesini içerir.Basit veri bağlamada, veri kaynağındaki değişiklikler otomatik olarak konak kontrollerine yansıtılır, ama konak kontrolündeki değişiklikler veri kaynağını güncellemek için açık bir çağrı gerektirir.Bunun sebebi, bazı durumlarda veriye bağlı bir alandaki değişikliklerin, başka bir veriye bağlı alandaki değişiklikleri içermediği sürece kabul edilmemesidir.Örneğin, iki tane alanınız olabilir; biri yaş için ötekisi de deneyim yılı için.Deneyim, yaşı geçemez.Kullanıcı, değişiklikleri aynı anda yapmadığı sürece, yaşı 50'den 25'e ve deneyimi de 30'dan 10'a güncelleyemez.Bu problemi çözmek için, basit veri bağlaması ile alanlar, değişiklikler kodla açıkça yollanmadıkca güncellenmez.

Veri kaynağını, basit veri bağlamasına olanak sağlayan konak kontrollerinden güncellemek için, güncellemeleri bellekteki veri kaynağına (DataSet veya DataTable gibi) ve sonra da eğer çözümünüz kullanıyorsa, arka uç veritabanına yollamalısınız.

ListObject denetimini kullanarak karmaşık veri bağlama gerçekleştirdiğinizde bellekteki veri kaynağını açıkça güncellemenizde gerek yoktur.Bu durumda, değişiklikler ek kod olmaksızın otomatik olarak bellekteki veri kaynağına gönderilir.

Daha fazla bilgi için bkz. Nasıl Yapılır: Konak Kontrolü Verileriyle Veri Kaynağını Güncelleme.

Ayrıca bkz.

Görevler

Nasıl yapılır: Bir Windows Formunda Basit Bağlantılı Denetim Oluşturma

Nasıl yapılır: TableAdapter Kullanarak Veri Güncelleştirme

Kavramlar

Veri Bağlama ve Windows Forms

Visual Studio'da Verilere Windows Forms Denetimleri Bağlama

Veri Kümelerindeki Verileri Kaydetme

Verileri Önbelleğe Alma

Diğer Kaynaklar

Nasıl ı: tüketen Excel'deki verileri veritabanına?

Office Çözümlerindeki Veriler