Aracılığıyla paylaş


İzlenecek Yol: Uygulama Düzeyi Projelerinde Basit Veri Bağlama

Uygulama düzeyi projelerinde veriyi konak kontrollerine ve Windows Forms denetimlerine bağlayabilirsiniz. Bu izlenecek yolda, Microsoft Office Word belgesine denetimlerin nasıl ekleneceği ve çalışma zamanında denetimlerin veriye nasıl bağlanacağı gösterilmektedir.

Uygulama alanı: Bu konudaki bilgiler Word 2007 ve Word 2010 uygulamalarının uygulama düzeyi projelerine yöneliktir. Daha fazla bilgi için bkz. Office Uygulamalarında Kullanılabilir Özellikler ve Proje Türü.

Bu izlenecek yol aşağıdaki görevleri gösterir:

  • Belgeye çalışma zamanında ContentControl ekleme.

  • Veri kümesinin örneğine denetim bağlayan BindingSource oluşturma.

  • Kullanıcılara, kayıtlarda kaydırma yapma ve onları denetimde görüntüleme olanağı sağlama.

Not

Bilgisayarınız, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arabirimi öğelerinden bazıları için farklı adlar veya konumlar gösterebilir. Bu öğeleri bilgisayarınızdaki Visual Studio sürümü ve kullandığınız ayarlar belirler. Daha fazla bilgi için bkz: Visual Studio Ayarlar.

Önkoşullar

İzlenecek bu yolu tamamlamak için aşağıdaki bileşenler gerekmektedir:

-

Microsoft Office geliştirici araçlarını içeren bir Visual Studio 2010 sürümü. Daha fazla bilgi için bkz: [Office Çözümeri Geliştirmek İçin Bilgisayarı Yapılandırma](bb398242\(v=vs.100\).md).

Yeni Bir Proje Oluşturma

İlk adım Word eklenti projesi oluşturmaktır.

Yeni bir proje oluşturmak için

  1. Visual Studio or C# kullanarak Veritabanından Belgeleri Doldurma ismiyle Word eklenti projesi oluşturun.

    Daha fazla bilgi için bkz. Nasıl Yapılır: Visual Studio'da Office Projeleri Oluşturma.

    Visual Studio ThisAddIn.vb veya ThisAddIn.cs dosyasını açar ve bir Database project doldurma belgeleri ekler Solution Explorer.

  2. Eğer projeniz .NET Framework 4'i hedefliyorsa, Microsoft.Office.Tools.Word.v4.0.Utilities.dll derlemesine bir başvuru ekleyin. Bu izlenecek yol sonrasında Windows Forms denetimlerini belgeye eklemek için, bu başvuru gereklidir.

Veri Kaynağı Oluşturma

Projenize yazılmış veri kümesi eklemek için Veri Kaynağı penceresini kullanın.

Projeye türü belirtilmiş veri kümesi eklemek için

  1. Data menüsünden Yeni Veri Kaynağı Ekle'yi tıklayın.

    Veri Kaynağı Yapılandırma Sihirbaz'ı açılır.

  2. Veritabanı'nı sonra da İleri'yi tıklayın.

  3. AdventureWorksLT veritabanına önceden varolan bir bağlantınız varsa bu bağlantıyı seçin ve İleri'yi tıklayın.

    Aksi takdirde, Yeni Bağlantı'yı tıklayın ve yeni bir bağlantı oluşturmak için Bağlantı Ekle iletişim kutusunu kullanın. Daha fazla bilgi için bkz. Nasıl Yapılır: Bir veritabanındaki veri bağlama.

  4. Bağlantı Dizesini Uygulama Yapılandırma Dosyasına Kaydet sayfasında İleri'yi tıklatın.

  5. Veritabanı Nesnenizi Seçin sayfasında Tablolar'ı genişletin ve Müşteri (SalesLT) tablosunu seçin.

  6. Son düğmesini tıklatın.

    The AdventureWorksLTDataSet.xsd dosyası Çözüm Gezgini'ne eklenir. Dosya aşağıdaki öğeleri tanımlar:

    • AdventureWorksLTDataSet olarak adlandırılan yazılmış veri kümesi. Bu veri kümesi AdventureWorksLT veritabanının Müşteri (SalesLT) tablosunun içeriğini gösterir.

    • CustomerTableAdapter olarak adlandırılan TableAdapter. Bu TableAdapter AdventureWorksLTDataSet'ten veri okumak veya yazmak için kullanılabilir. Daha fazla bilgi için bkz. TableAdapter genel bakış.

    Bu iki nesneyi daha sonra bu örnekte kullanacaksınız.

Denetimler Yaratma ve Denetimleri Veriye Bağlama

Bu örnekte veritabanı kayıtlarını gösteren arayüz çok basittir ve belgenin içinde oluşturulmuştur. Bir ContentControl, her seferinde tek veritabanı kaydını görüntüler ve iki Button denetimi kayıtlarda ileri geri kaydırma yapmanıza olanak sağlar. İçerik denetimi, veritabanına bağlanmak için BindingSource kullanır.

Denetimlere veri bağlama hakkında daha fazla bilgi için, bkz. Office Çözümlerinde Veriyi Denetime Bağlama

Belge içinde arayüz yaratmak

  1. ThisAddIn sınıfında, AdventureWorksLTDataSet veritabanının Customer tablosunu göstermek ve orda kaydırma yapmak için aşağıdaki denetimleri bildirin.

    Private adventureWorksDataSet As AdventureWorksLTDataSet
    Private customerTableAdapter As AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter
    Private customerBindingSource As System.Windows.Forms.BindingSource
    Private customerContentControl As Microsoft.Office.Tools.Word.RichTextContentControl
    Private WithEvents button1 As Microsoft.Office.Tools.Word.Controls.Button
    Private WithEvents button2 As Microsoft.Office.Tools.Word.Controls.Button
    
    private AdventureWorksLTDataSet adventureWorksDataSet;
    private AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter customerTableAdapter;
    private System.Windows.Forms.BindingSource customerBindingSource;
    private Microsoft.Office.Tools.Word.RichTextContentControl customerContentControl;
    private Microsoft.Office.Tools.Word.Controls.Button button1;
    private Microsoft.Office.Tools.Word.Controls.Button button2;
    
  2. ThisAddIn_Startup yönteminde, veri kümesini tanımlamak, veri kümesini AdventureWorksLTDataSet veritabanından gelen bilgiyle doldurmak için aşağıdaki kodu ekleyin.

    Me.adventureWorksDataSet = New AdventureWorksLTDataSet()
    Me.customerTableAdapter = New AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter()
    Me.customerTableAdapter.Fill(Me.adventureWorksDataSet.Customer)
    Me.customerBindingSource = New System.Windows.Forms.BindingSource()
    
    this.adventureWorksDataSet = new AdventureWorksLTDataSet();
    this.customerTableAdapter = new AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter();
    this.customerTableAdapter.Fill(this.adventureWorksDataSet.Customer);
    this.customerBindingSource = new System.Windows.Forms.BindingSource();
    
  3. Aşağıdaki kodu ThisAddIn_Startup yöntemine ekleyin. Bu, belgeyi genişleten bir konak öğesi yaratır. Daha fazla bilgi için bkz. Word Belgelerini ve Excel Çalışma Kitaplarını Çalıştırma Zamanında Uygulama Düzeyi Eklentileri İçinde Genişletme.

    Dim currentDocument As Word.Document = Me.Application.ActiveDocument
    
    ' Use the following line of code in projects that target the .NET Framework 4.
    Dim extendedDocument As Document = Globals.Factory.GetVstoObject(currentDocument)
    
    ' In projects that target the .NET Framework 3.5, use the following line of code instead.
    ' Dim extendedDocument As Document = currentDocument.GetVstoObject()
    
    Word.Document currentDocument = this.Application.ActiveDocument;
    
    // Use the following line of code in projects that target the .NET Framework 4.
    Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument);
    
    // In projects that target the .NET Framework 3.5, use the following line of code instead.
    // Document extendedDocument = currentDocument.GetVstoObject();
    
  4. Belgenin başında birkaç aralık tanımlayın. Bu aralıklar metnin nereye ekleneceğini ve denetimlerin nereye yerleştirileceğini belirler.

    extendedDocument.Paragraphs(1).Range.InsertParagraphBefore()
    extendedDocument.Paragraphs(1).Range.InsertParagraphBefore()
    extendedDocument.Paragraphs(1).Range.Text = "The companies listed in the AdventureWorksLT database:   "
    extendedDocument.Paragraphs(2).Range.Text = "  "
    
    Dim range1 As Word.Range = extendedDocument.Paragraphs(2).Range.Characters.First
    Dim range2 As Word.Range = extendedDocument.Paragraphs(2).Range.Characters.Last
    Dim range3 As Word.Range = extendedDocument.Paragraphs(1).Range.Characters.Last
    
    extendedDocument.Paragraphs[1].Range.InsertParagraphBefore();
    extendedDocument.Paragraphs[1].Range.InsertParagraphBefore();
    extendedDocument.Paragraphs[1].Range.Text = 
        "The companies listed in the AdventureWorksLT database:   \n";
    extendedDocument.Paragraphs[2].Range.Text = "  "; 
    
    Word.Range range1 = extendedDocument.Paragraphs[2].Range.Characters.First;
    Word.Range range2 = extendedDocument.Paragraphs[2].Range.Characters.Last;
    Word.Range range3 = extendedDocument.Paragraphs[1].Range.Characters.Last;
    
  5. Önceden tanımlanmış aralıklara arayüz denetimi ekleyin.

    Me.button1 = extendedDocument.Controls.AddButton(range1, 60, 15, "1")
    Me.button1.Text = "Previous"
    Me.button2 = extendedDocument.Controls.AddButton(range2, 60, 15, "2")
    Me.button2.Text = "Next"
    
    Me.customerContentControl = extendedDocument.Controls.AddRichTextContentControl(range3, _
        "richTextContentControl1")
    
    this.button1 = extendedDocument.Controls.AddButton(range1, 60, 15, "1");
    this.button1.Text = "Previous";
    this.button2 = extendedDocument.Controls.AddButton(range2, 60, 15, "2");
    this.button2.Text = "Next";
    
    this.customerContentControl = extendedDocument.Controls.AddRichTextContentControl(
        range3, "richTextContentControl1");
    
  6. BindingSource kullanarak içerik denetimini AdventureWorksLTDataSet'e bağlayın. C# geliştiricileri için, Button denetimleri adına iki olay işleyicisi ekleyin.

    Me.customerBindingSource.DataSource = Me.adventureWorksDataSet.Customer
    Me.customerContentControl.DataBindings.Add("Text", Me.customerBindingSource, _
        "CompanyName", True, Me.customerContentControl.DataBindings.DefaultDataSourceUpdateMode)
    
    this.customerBindingSource.DataSource = this.adventureWorksDataSet.Customer;
    this.customerContentControl.DataBindings.Add("Text", this.customerBindingSource, 
        "CompanyName", true, this.customerContentControl.DataBindings.DefaultDataSourceUpdateMode);
    
    this.button1.Click += new EventHandler(button1_Click);
    this.button2.Click += new EventHandler(button2_Click);
    
  7. Veritabanı kayıtlarında gezinmek için aşağıdaki kodu ekleyin:

    Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
        Handles button1.Click
        Me.customerBindingSource.MovePrevious()
    End Sub
    
    Private Sub button2_Click(ByVal sender As Object, ByVal e As EventArgs) _
        Handles button2.Click
        Me.customerBindingSource.MoveNext()
    End Sub
    
    void button1_Click(object sender, EventArgs e)
    {
        this.customerBindingSource.MovePrevious();
    }
    
    void button2_Click(object sender, EventArgs e)
    {
        this.customerBindingSource.MoveNext();
    }
    

Eklentiyi Sınama

Word'ü açtığınızda, içerik denetimi AdventureWorksLTDataSet veri kümesinden veriyi görüntüler. İleri ve Önceki düğmelerini tıklatarak veritabanı kayıtlarında gezinin.

Eklentiyi sınamak için

  1. F5'a basın.

    customerContentControl olarak adlandırılan içerik denetimi oluşturulur ve veriyle doldurulur. Aynı anda, adventureWorksLTDataSet isimli veri kümesi nesnesi ve customerBindingSource isimli BindingSource projeye eklenir. ContentControl, karşılığında veri kümesi nesnesine bağlanan BindingSource'a bağlanır.

  2. Veritabanı kayıtlarında gezmek için İleri ve Önceki düğmelerini tıklatın.

Ayrıca bkz.

Görevler

Nasıl Yapılır: Veritabanından Gelen Veriyle Çalışma Sayfasını Doldurma

Nasıl Yapılır: Veritabanından Gelen Veriyle Belgeleri Doldurma

Nasıl Yapılır: Hizmetlerde Gelen Veriyle Belgeleri Doldurma

Nasıl Yapılır: Nesnelerden Gelen Veriyle Belgeleri Doldurma

Nasıl Yapılır: Çalışma Sayfasındaki Veritabanı Kayıtlarında Kaydırma Yapma

Nasıl Yapılır: Konak Kontrolündeki Veri ile Veri Kaynağını Güncelleme

İzlenecek Yol: Uygulama Düzeyi Projelerinde Basit Veri Bağlama

İzlenecek Yol: Uygulama Düzeyi Projelerinde Karmaşık Veri Bağlama

Nasıl Yapılır: Nesnelerden Gelen Veriyle Belgeleri Doldurma

Nasıl Yapılır: Konak Kontrolündeki Veri ile Veri Kaynağını Güncelleme

Başvuru

BindingSource bileşen genel bakış

Kavramlar

Office Çözümlerinde Yerel Veritabanı Dosyalarını Kullanmaya Genel Bakış

Veri Kaynaklar'na genel bakış

Windows Forms Denetimler Visual Studio veri bağlama

Office Çözümlerinde Yerel Veritabanı Dosyalarını Kullanmaya Genel Bakış

Windows Forms uygulamaları, veri Bağlanıyor

Diğer Kaynaklar

Office Çözümlerindeki Veri

Office Çözümlerinde Veriyi Denetime Bağlama