Aracılığıyla paylaş


İzlenecek Yol: Sunucudaki Çalışma Kitabından Önbellekteki Veriye Erişme

Adım adım izlenecek yollar, ServerDocument sınıfını kullanarak Excel'i başlatmadan Microsoft Office Excel çalışma kitabı önbelleğindeki veri kümesinden veriye nasıl erişeceğinizi gösterir. İzlenecek yol, Nasıl Yapılır: Sunucudaki Çalışma Kitabından Önbelleğe Alınmış Verileri Alma da bulunan örnek kodu kullanmak için adım adım yönerge sağlar.

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

Bu örneklerde aşağıdaki görevler gösterilir:

  • AdventureWorksLT veritabanında veri içeren veri kümesi tanımlama.

  • Excel çalışma kitabı ve konsol uygulaması projesindeki veri kümesinin örneklerini oluşturma.

  • Çalışma kitabındaki veri kümesine bağlı bir ListObject oluşturma ve çalışma kitabı açıldığında ListObject ile veri doldurma.

  • Çalışma kitabındaki veri kümesini veri önbelleğine ekleme.

  • Excel'i başlatmadan önbellekteki veri kümesinden konsol uygulamasındaki veri kümesine veri okuma.

Bu örnek, kodu onu geliştirdiğiniz bilgisayarda çalıştırdığınızı kabul eder. Bu örnekte gösterilen kod Excel yüklü olmayan bir sunucuda kullanılabilir.

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. Ayarlar ile çalışma.

Önkoşullar

Bu örneği 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).

Veri Kümesi Tanımlayan Sınıf Kitaplığı Projesi Oluşturma

Excel çalışma kitabı projesi ve konsol uygulamasındaki aynı veri kümesini kullanmak için bu veri kümesini her iki proje tarafından da başvurulan ayrı bir derleyicide tanımlamanız gerekir. Bu örnek için veri kümesini sınıf kitaplığı projesinde tanımlayın.

Sınıf kitaplığı projesi oluşturmak için

  1. Visual Studio uygulamasını başlatın.

  2. File (Dosya) menüsünde, New'un (Yeni) üzerine gelin ve Project'i (Proje) tıklatın.

  3. Şablon bölmesinde Visual C# veya Visual Basic'i genişletin ve sonra Windows'a tıklayın.

  4. Proje şablonu listesinde sınıf kitaplığını seçin.

  5. Ad kutusuna AdventureWorksDataSet yazın.

  6. Browse'u tıklayın, %UserProfile%\My Documents (Windows XP ve öncesi için) veya %UserProfile%\Documents (Windows Vista için) klasörüne gidin ve Klasör Seç'i tıklayın.

  7. Yeni Proje iletişim kutusunda Çözüm için dizin oluşturun onay kutusunun seçili olmadığından emin olun.

  8. Tamam düğmesini tıklatın.

    Visual Studio AdventureWorksDataSet projesini Çözüm Gezgini'ne ekler ve Sınıf1.cs veya Sınıf1.vb kod dosyasını açar.

  9. Çözüm Gezgini'nde Sınıf1.cs veya Sınıf1.vb'ye sağ tıklayın ve sonra Sil'i tıklayın. Bu örnek için bu dosya gerekmez.

Sınıf Kitaplığı Projesinde Veri Kümesi Tanımlama

SQL Server 2005 için AdventureWorksLT veritabanından veri içeren yazılmış veri kümesi tanımlayın. Bu örnekte daha sonra Excel çalışma kitabı ve konsol uygulama projelerinden bu veri kümesine başvuracaksınız.

Bu veri kümesi AdventureWorksLT veritabanının Product tablosundaki veriyi gösteren bir yazılmış veri kümesidir. Yazılmış veri kümeleri hakkında daha fazla bilgi için, bkz: Visual Studio veri ile çalışma.

Sınıf Kitaplığı Projesinde Veri Kümesi Tanımlama

  1. Çözüm Gezgini'nde AdventureWorksDataSet'i tıklayın.

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

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

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

  4. Eğer 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, New Connetion'ı tıklayın ve yeni bir bağlantı oluşturmak için Add Connection iletişim kutusunu kullanın. Daha fazla bilgi için bkz. Nasıl Yapılır: Bir veritabanındaki veri bağlama.

  5. Save the Connection String to the Application Configuration File sayfasında Next'i tıklayın.

  6. Veritabanı Nesnenizi Seçin sayfasında Tables'ı genişletin ve Product (SalesLT) tablosunu seçin.

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

    The AdventureWorksLTDataSet.xsd dosyası AdventureWorksDataSet projesine 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 Product tablosunun içeriğini gösterir.

    • ProductTableAdapter 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.

  8. Çözüm Gezgini'nde AdventureWorksDataSet'e sağ tıklayın ve Yapı'yı tıklayın.

    Projenin hatasız oluşturulduğunu doğrulayın.

Excel Çalışma Kitabı Projesi Oluşturma

Veri arabirimi için excel çalışma kitabı projesi oluşturma. Bu örnekte daha sonra veriyi gösteren ListObject oluşturacaksınız ve çalışma kitabı veri önbelleğine bu veri kümesinin bir örneğini ekleyeceksiniz.

Excel Çalışma Kitabı Projesi Oluşturmak İçin

  1. Çözüm Gezgini'nde AdventureWorksDataSet çözümünü sağ tıklayın, Add'i işaret edin ve sonra Yeni Proje'yi tıklayın.

  2. Şablon bölmesinde Visual C# veya Visual Basic'i genişletin ve sonra Office'i genişletin.

  3. Genişletilmiş Office düğümünün altında 2007 veya 2010 düğümünü seçin.

  4. Proje şablonu listesinde Excel çalışma kitabı projesini seçin.

  5. Ad kutusuna AdventureWorksReport yazın. Konumu değiştirmeyin.

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

    Office için Visual Studio Araçları Sihirbaz'ı açılır.

  7. Yeni belge oluştur'u seçtiğinizden emin olun ve Tamam'ı tıklayın.

    Visual Studio AdventureWorksDataSet tasarımcıdaki çalışma kitabını açar ve Çözüm Gezgini'ne AdventureWorksReport projesini ekler.

Excel Çalışma Kitabı Projesindeki Veri Kümesini Veri Kaynağına Ekleme

Excel çalışma kitabındaki veri kümesini görüntülemeden önce Excel çalışma kitabı projesindeki veri kümesini veri kaynağına eklemelisiniz.

Excel Çalışma Kitabı Projesindeki Veri Kümesini Veri Kaynağına Eklemek İçin

  1. Çözüm Gezgini'ndenAdventureWorksReport projesi altındaki Sayfa1.cs veya Sayfa1.vb'i çift tıklayın.

    Çalışma kitabı tasarımcıda açılır.

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

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

  3. Nesne’yi ve ardından İleri’yi tıklatın.

  4. Bağlamak İstediğiniz Nesneyi Seçin sayfasında Add Reference'ı tıklayın.

  5. Projects sekmesinde AdventureWorksDataSet'i ve sonra da Tamam'ı tıklayın.

  6. AdventureWorksDataSet derleyicisinin AdventureWorksDataSet isim uzayının altındaki AdventureWorksLTDataSet'i ve sonra Son'u tıklayın.

    Veri Kaynağı penceresi açılır ve AdventureWorksLTDataSet veri kaynağı listelerine eklenir.

Veri Kümesi Örneğine Bağlanan ListObject Oluşturma

Çalışma kitabındaki veri kümesini görüntülemek için veri kümesinin örneğine bağlanmış bir ListObject oluşturun. Kontrollere veri bağlama hakkında daha fazla bilgi için, bkz. Office Çözümlerinde Veriyi Denetime Bağlama

Veri kümesi örneğine bağlanmış ListObject oluşturmak için

  1. Veri Kaynağı penceresinde AdventureWorksDataSet altındaki AdventureWorksLTDataSet düğümünü genişletin.

  2. Product düğümünü seçin, ortaya çıkan açılır oku tıklayın ve açılır listedeki ListObject'i seçin.

    Eğer açılır ok ortaya çıkmazsa çalışma kitabının tasarımcıda açık olduğundan emin olun.

  3. Product tablosunu A1 hücresine sürükleyin.

    Çalışma sayfasında A1 hücresinden başlayarak productListObject isimli ListObject denetimi oluşturulur. Aynı anda, adventureWorksLTDataSet isimli veri kümesi nesnesi ve productBindingSource isimli BindingSource projeye eklenir. ListObject, karşılığında veri kümesi nesnesine bağlanan BindingSource'a bağlanır.

Veri Kümesini Veri Önbelleğine Ekleme

Excel çalışma kitabı projesindeki kodun çalışma kitabındaki veri kümesine erişimini sağlamak için veri kümesini veri önbelleğine eklemelisiniz. Veri önbelleği hakkında daha fazla bilgi için, bkz. Belge Düzeyi Özelleştirmelerinde Önbellekteki Veri ve Veriyi Önbelleğe Alma.

Veri kümesini veri önbelleğine eklemek için

  1. Tasarımcıda adventureWorksLTDataSet'i tıklayın.

  2. Özellikler penceresinde Modifiers özelliğini Public olarak ayarlayın.

  3. CacheInDocument özelliğini True olarak ayarlayın.

Çalışma Kitabında Veri Kümesi Başlatma

Veri kümesi önbelleğinden konsol uygulamasını kullanarak veri almadan önce veri kümesi önbelleğini veri ile doldurmanız gerekir.

Çalışma kitabında veri kümesi başlatmak için

  1. Çözüm Gezgini'nde Sheet1.cs veya Sheet1.vb dosyasına sağ tıklayın ve View Code'u tıklayın.

  2. Sheet1_Startup olay işleyicisini aşağıdaki kod ile değiştirin. Bu kod eğer veri kümesi önbelleği boş ise onu doldurmak için AdventureWorksDataSet projesinde tanımlanan ProductTableAdapter sınıfının örneğini kullanır.

    Private ProductTableAdapter As New  _
        AdventureWorksDataSet.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter()
    
    Private Sub Sheet1_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup
        If Me.NeedsFill("AdventureWorksLTDataSet") Then
            Me.ProductTableAdapter.Fill(Me.AdventureWorksLTDataSet.Product)
        End If
    End Sub
    
    private AdventureWorksDataSet.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter productTableAdapter =
        new AdventureWorksDataSet.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter();
    
    private void Sheet1_Startup(object sender, System.EventArgs e)
    {
        if (this.NeedsFill("adventureWorksLTDataSet"))
        {
            this.productTableAdapter.Fill(this.adventureWorksLTDataSet.Product);
        }
    }
    

Checkpoint

Hatasız derlendiğinden ve çalıştığından emin olmak için Excel çalışma kitabı projesini oluşturun ve çalıştırın. Bu işlem aynı zamanda veri kümesi önbelleğini de doldurur ve veriyi çalışma kitabında saklar.

Projeyi oluşturup çalıştırmak için

  1. Çözüm Gezgini'nden AdventureWorksReport projsine sağ tıklayın, Debug'ı seçin ve sonra Yeni Örnek Başlat'ı tıklayın.

    Proje oluşturulur ve çalışma kitabı Excel'de açılır. Aşağıdakileri doğrulayın:

    • ListObject veri ile dolar.

    • ListObject'in ilk sırası için ListPrice sütununun değeri 1431.5 dir. Bu örnekte daha sonra, ListPrice sütununun değerini değiştirmek için konsol uygulaması kullanacaksınız.

  2. Çalışma kitabını kaydedin. Dosya adını veya çalışma kitabının konumunu değiştirmeyin.

  3. Excel'i kapatın.

Konsol Uygulama Projesi Oluşturma

Çalışma kitabının veri kümesi önbelleğindeki veriyi değiştirmek için kullanacağınız konsol uygulama projesi oluşturun.

Konsol uygulama projesi oluşturmak için

  1. Çözüm Gezgini'nde AdventureWorksDataSet çözümünü sağ tıklayın, Add'i işaret edin ve sonra Yeni Proje'yi tıklayın.

  2. Project Types bölmesinde Visual C# veya Visual Basic'yi genişletin ve sonra Windows'u tıklayın.

  3. Templates bölmesinde Console Application'ı seçin.

  4. Ad kutusuna DataReader yazın. Konumu değiştirmeyin.

  5. Tamam düğmesini tıklatın.

    Visual Studio DataReader projesini Çözüm Gezgini'ne ekler ve Program.cs veya Module1.vb kod dosyasını açar.

Konsol Uygulaması Kullanarak Veri Kümesi Önbelleğinden Veri Erişimi

Veriyi yerel AdventureWorksLTDataSet objesine okumak için konsol uygumasındaki ServerDocument sınıfını kullanın. Uygulama, yerel veri kümesinin, veri kümesinden veri ile başlatıldığını onaylamak için yerel veri kümesindeki satırların sayısını gösterir.

Veri kümesi önbelleğinden veriye erişmek için

  1. Çözüm Gezgini'nde, DataReader projesini sağ tıklayın ve Add Reference'ı tıklayın.

  2. .NET sekmesinde Microsoft.VisualStudio.Tools.Applications.ServerDocument'ı (eğer DataReader projesi .NET Framework 4'u hedefliyorsa) veya Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0'u (eğer DataReader projesi .NET Framework 3.5'u hedefliyorsa) seçin.

  3. Tamam düğmesini tıklatın.

  4. Çözüm Gezgini'nde, DataReader projesini sağ tıklayın ve Add Reference'ı tıklayın.

  5. Projects sekmesinde AdventureWorksDataSet'i seçin ve Tamam'ı tıklayın.

  6. Kod Düzenleyicisinde Program.cs veya Module1.vb dosyasını Açın

  7. Kod dosyasının başına using (C# için) veya ,Imports (Visual Basic için) deyimini ekleyin.

    Imports Microsoft.VisualStudio.Tools.Applications
    
    using Microsoft.VisualStudio.Tools.Applications;
    
  8. Aşağıdaki kodu Main yöntemine ekleyin. Bu kod aşağıdaki objeleri bildirir:

    • AdventureWorksDataSet projesinde tanımlanmış AdventureWorksLTDataSet türünün örneği.

    • AdventureWorksReport projesinin yapı klasöründeki AdventureWorksReport çalışma kitabı yolu.

    • Çalışma kitabı veri kümesi önbelleğine erişim için kullanılan ServerDocument nesnesi.

      Not

      Aşağıdaki kod çalışma kitabının .xlsx uzantısı ile kaydedildiğini varsayar. Eğer projenizdeki çalışma kitabının farklı bir uzantısı varsa, yolu gereken şekilde değiştirin.

    Dim productDataSet As New AdventureWorksDataSet.AdventureWorksLTDataSet()
    Dim workbookPath As String = System.Environment.GetFolderPath( _
        Environment.SpecialFolder.MyDocuments) & _
        "\AdventureWorksReport\bin\Debug\AdventureWorksReport.xlsx"
    Dim serverDocument1 As ServerDocument = Nothing
    
    AdventureWorksDataSet.AdventureWorksLTDataSet productDataSet =
        new AdventureWorksDataSet.AdventureWorksLTDataSet();
    string workbookPath = System.Environment.GetFolderPath(
        Environment.SpecialFolder.MyDocuments) +
        @"\AdventureWorksReport\bin\Debug\AdventureWorksReport.xlsx";
    ServerDocument serverDocument1 = null;
    
  9. Bir önceki basamaktaki kodu ekledikten sonra, aşağıdaki kodu Main yöntemine ekleyin. Bu kod aşağıdaki görevleri gerçekleştirir:

    • Çalışma kitabındaki veri kümesi önbelleğine erişim için ServerDocument sınıfının CachedData özelliğini kullanır.

    • Veri kümesi önbelleğindeki veriyi yerel veri kümesine okur.

    • Yerel veri kümesinin veriyi aldığından emin olmak için yerel veri kümesindeki satırların sayısını görüntüler.

    Try
        serverDocument1 = New ServerDocument(workbookPath)
        Dim dataHostItem1 As CachedDataHostItem = _
            serverDocument1.CachedData.HostItems("AdventureWorksReport.Sheet1")
        Dim dataItem1 As CachedDataItem = dataHostItem1.CachedData("AdventureWorksLTDataSet")
    
        If dataItem1 IsNot Nothing Then
            Console.WriteLine("Before reading data from the cache dataset, the local dataset has " & _
                "{0} rows.", productDataSet.Product.Rows.Count.ToString())
    
            ' Read the cached data from the worksheet dataset into the local dataset.
            Dim schemaReader As New System.IO.StringReader(dataItem1.Schema)
            Dim xmlReader As New System.IO.StringReader(dataItem1.Xml)
            productDataSet.ReadXmlSchema(schemaReader)
            productDataSet.ReadXml(xmlReader)
    
            Console.WriteLine("After reading data from the cache dataset, the local dataset has " & _
                "{0} rows.", productDataSet.Product.Rows.Count.ToString())
        Else
            Console.WriteLine("The data object is not found in the data cache.")
        End If
    Catch ex As System.IO.FileNotFoundException
        Console.WriteLine("The specified workbook does not exist.")
    Catch ex As System.Xml.XmlException
        Console.WriteLine("The data object has invalid XML information.")
    Finally
        If Not (serverDocument1 Is Nothing) Then
            serverDocument1.Close()
        End If
        Console.WriteLine(vbLf & vbLf & "Press Enter to close the application.")
        Console.ReadLine()
    End Try
    
    try
    {
        serverDocument1 = new ServerDocument(workbookPath);
        CachedDataHostItem dataHostItem1 =
            serverDocument1.CachedData.HostItems["AdventureWorksReport.Sheet1"];
        CachedDataItem dataItem1 = dataHostItem1.CachedData["adventureWorksLTDataSet"];
    
        if (dataItem1 != null)
        {
            Console.WriteLine("Before reading data from the cache dataset, the local dataset has " +
                "{0} rows.", productDataSet.Product.Rows.Count.ToString());
    
            // Read the cached data from the worksheet dataset into the local dataset.
            System.IO.StringReader schemaReader = new System.IO.StringReader(dataItem1.Schema);
            System.IO.StringReader xmlReader = new System.IO.StringReader(dataItem1.Xml);
            productDataSet.ReadXmlSchema(schemaReader);
            productDataSet.ReadXml(xmlReader);
    
            Console.WriteLine("After reading data from the cache dataset, the local dataset has " +
                "{0} rows.", productDataSet.Product.Rows.Count.ToString());
        }
        else
        {
            Console.WriteLine("The data object is not found in the data cache.");
        }
    }
    catch (System.IO.FileNotFoundException)
    {
        Console.WriteLine("The specified workbook does not exist.");
    }
    catch (System.Xml.XmlException)
    {
        Console.WriteLine("The data object has invalid XML information.");
    }
    finally
    {
        if (serverDocument1 != null)
        {
            serverDocument1.Close();
        }
    
        Console.WriteLine("\n\nPress Enter to close the application.");
        Console.ReadLine();
    }
    
  10. Build menüsünde Build DataReader'ı tıklayın.

Projeyi Test Etme

Konsol uygulumasını çalıştırdığınız zaman yerel veri kümesindeki satırların sayısını görüntüler.

Çalışma kitabını test etmek için

  1. Çözüm Gezgini'nde DataReader projsine sağ tıklayın, Debug'ı işaret edin ve sonra Yeni Örnek Başlat'ı tıklayın.

    Uygulamanın yerel veri kümesinin 295 satırı bulunduğunu rapor etttiğini onaylayın.

  2. Uygulamayı kapatmak için ENTER tuşuna basın.

Sonraki Adımlar

Önbellekteki verilerle çalışma hakkında daha fazla bilgiyi aşağıdaki konulardan öğrenebilirsiniz:

Ayrıca bkz.

Görevler

Nasıl Yapılır: Sunucudaki Çalışma Kitabından Önbelleğe Alınmış Verileri Alma

Nasıl Yapılır: Sunucudaki bir Çalışma Kitabına Veri Girme

İzlenecek Yol: Bir sunucu üzerindeki bir çalışma kitabına veri ekleme

İzlenecek Yol: Sunucu Üzerindeki Çalışma Kitabında Bulunan Önbellekteki Veriyi Değiştirme

Kavramlar

Windows Forms uygulamaları, veri Bağlanıyor