Aracılığıyla paylaş


Office Çözümlerinde Veriyi Denetime 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 alanı: Bu konudaki bilgiler Office 2013 ve Office 2010'un belge düzeyi projelerine ve uygulama düzeyi projelerine yöneliktir. Bkz. Office Uygulamalarında Kullanılabilir Özellikler ve Proje Türü.

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. Konak Öğeleri ve Konak Kontrollerine 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üzeyinde projesinde basit veri bağlamayı, uygulama düzeyi projeleri için bkz. İzlenecek yol: Uygulama düzeyinde projesinde basit veri bağlamayı.

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 formları 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üzeyinde projesinde karmaşık veri bağlama, uygulama düzeyi projeleri için bkz. İzlenecek yol: Uygulama düzeyinde projesinde 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. Windows Forms denetimleri Visual Studio veri bağlama ve Veri Kaynakları Penceresi.

ad7sfx3w.collapse_all(tr-tr,VS.110).gifVeri 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.

ad7sfx3w.collapse_all(tr-tr,VS.110).gifBelge Düzeyi Projelerinde Tasarım Zamanında Denetim Ekleme

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

ad7sfx3w.collapse_all(tr-tr,VS.110).gifUygulama 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: bir ana bilgisayar Denetim verilerle veri kaynağını güncelleştirin.

Ayrıca bkz.

Görevler

Nasıl yapılır: bir Windows formundaki basit bağlanmış denetimi oluşturma

Nasıl yapılır: bir TableAdapter kullanarak veri güncelleştirme

Kavramlar

Veri bağlama ve Windows Forms

Windows Forms denetimleri Visual Studio veri bağlama

DataSet verileri kaydetme

Veriyi Önbelleğe Alma

Diğer Kaynaklar

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

Office Çözümlerindeki Veri