Aracılığıyla paylaş


TableAdapter Genel Bakışı

TableAdapterler, uygulamanız ile bir veritabanı arasındaki iletişimi sağlar.Daha belirgin bir biçimde, bir TableAdapter veritabanına bağlanır, sorgular veya kayıtlı prosedürleri çalıştırır ve bunun yanında dönen verileri ile tamamlanmış yeni bir veri tablosunu döndürür veya döndürülen veriler ile varolan DataTable 'i doldurur.TableAdapterler veritabanına uygulamanızdan güncelleştirilmiş veriler göndermek için de kullanılır.

Bu Visual Studio 'in önceki sürümlerini kullananlar, TableAdapterini DataAdapter olarak yerleşik bir bağlantı nesnesi ve birden çok sorgu içeren yeteneği ile düşünebilir.Her sorgu, bir nesne üzerinde herhangi bir method veya işlev gibi basitçe adlandırılan genel method olarak bir TableAdaptere eklenir.

Bir DataAdapter 'in standart işlevlerinin yanı sıra, TableAdapterler DataTable birleşik yazılmış ortak bir şema ile paylaşan sorguları kapsayan ek yazılmış yöntemleri sağlar.Başka bir deyişle, aynı şemaya uyan veri döndürmeleri sürece birTableAdapter üzerinde istediğiniz gibi çok sayıda sorgu olabilir.

Bu Visual Studio 'in önceki sürümünde, ADO.NET veri bağdaştırıcıları, uygulama ve veritabanı arasında iletişim kurmak için kullanılmıştır.Veri bağdaştırıcıları .NET Framework Data Providers ,nın hala ana bileşeni olmakla birlikte, TableAdapterler DataAdapterlerin işlevselliğini artıran tasarımcı oluşturulan bileşenleridir.Genellikle TableAdapterler bir veritabanındaki verileri güncellemek ve komut getirmek için Fill ve Update methodlarını içerir.

TableAdapterler Dataset Designer ile hızlı yazılmış veri setleri içinde oluşturuldu.TableAdapterleri yeni bir veri seti oluşturma sırasında Veri Kaynağı Yapılandırma Sihirbazı ile oluşturabilirsiniz.TableAdapterleri varolan veri setlerinde TableAdapter Yapılandırma Sihirbazı ile veya veritabanı nesnelerini Server Explorer dan Dataset Designer in üzerine sürükleyerek oluşturabilirsiniz.Daha fazla bilgi için bkz. Nasıl yapılır: TableAdapters Oluşturma.

TableAdapterleri Dataset Designer ile tasarlanmış olmasına rağmen, oluşturulan TableAdapter sınıfları iç içe sınıflar olarak DataSet oluşturulmaz .Her veri kümesi için ayrı bir şekilde isim uzayı spesifik olarak bulunur.Örneğin, NorthwindDataSet adlı bir veri kümesi varsa, TableAdapterlar DataTableleri ile ilgili NorthwindDataSet in içinde NorthwindDataSetTableAdapters isim uzayında olurdu.Belirli bir TableAdaptere program aracılığıyla erişmek için TableAdapterin yeni bir örneğini bildirmeniz gerekir.Örne?in:

Dim northwindDataSet As New NorthwindDataSet()
Dim customersTableAdapter As New NorthwindDataSetTableAdapters.CustomersTableAdapter()

customersTableAdapter.Fill(northwindDataSet.Customers)
NorthwindDataSet northwindDataSet = new NorthwindDataSet();

NorthwindDataSetTableAdapters.CustomersTableAdapter customersTableAdapter = 
    new NorthwindDataSetTableAdapters.CustomersTableAdapter();

customersTableAdapter.Fill(northwindDataSet.Customers);

DataTable şemasıyla ilişkili

Bir TableAdapter oluşturulduğu zaman, başlangıçtaki sorgu veya saklı yordam TableAdapterler ilişkili DataTable şemasını tanımlamak için kullanılır.Bu ilk sorgu veya saklı yordamı TableAdapter'ın ana Fill yöntemini çağırarak çalıştırırsınız (Bu methodlar TableAdapterin DataTableile ilişkili olarak doldurulur).İlişkili veri tabloların şemasında TableAdapter'ın ana sorguda yapılan değişiklikler yansıtılır.Örneğin, ana sorgudan sütun kaldırma ilişkili veri tablosundan sütun kaldırır.TableAdapter üzerindeki ek sorgular ana sorguda bulunmayan sütunları döndüren SQL hesap özetlerini kullanırsa, ana sorgu ve ek sorgular arasında sütun değişikliklerini senkronize etmek için tasarımcı çalışacaktır.Daha fazla bilgi için bkz. Nasıl Yapılır: TableAdapters Öğesini Düzenleme.

TableAdapter Güncelleme Komutları

Bir TableAdapterin güncelleme işlevselliği, TableAdapter Sihirbazı'nda sağlanan ana sorguda ne kadar bilginin erişebildiğine bağlıdır.Örneğin, çoklu tablolardan (JOINs), toplu işlevlerin skalar değerlerinden, görüntülemelerden veya sonuçlardan değerleri almak için yapılandırılmış olan TableAdapterler, başlangıçta alttaki veritabanına güncellemeleri geri gönderme olanağı oluşturmaz.Fakat, INSERT, UPDATE ve DELETE komutlarını Özellikler penceresinde manual olarak yapılandırabilirsiniz.

TableAdapter Sorguları

Birden çok sorguyla TableAdapter

Standart veri bağdaştırıcılarından farklı olarak, TableAdapterler ilişkili oldukları veri tablolarını doldurmak için birden çok sorgu içerebilir.Bir TableAdapter için uygulamanızın gerektirdiği kadar, ilişkili veri tabloları olarak aynı şemaya uyan veri döndüğü sürece bir çok sorguyu tanımlayabilirsiniz.Bu, farklı ölçütleri karşılayan verilerin yüklenmesini sağlar.Örneğin, uygulamanız müşterilerin tablosunu içeriyorsa, sorguda ismi belirli bir harfle başlayan her müşteri ile doldurulan sorgu ve aynı durumda bulunan tüm müşterilerin tablosu ile doldurulan başka bir sorgu oluşturabilirsiniz.Belirli bir durumda müşterilerle bir Customers tablosu oluşturmak için, bir FillByState durumu değerinde bir parametre alan sorgu: SELECT * FROM Customers WHERE State = @State.Bir FillByState methodunu çağırarak sorguyu yürütülür ve parametre değerinde şöyle geçer: CustomerTableAdapter.FillByState("WA").Daha fazla bilgi için bkz. Nasıl Yapılır: TableAdapter Sorguları Oluşturma.

TableAdapter'in veril tablolarında aynı şemanın veri döndüren sorgulara ilave olarak skalar (tek) değer döndüren sorgular ekleyebilirsiniz.Örneğin, müşterilerin sayısını döndüren bir sorgu oluşturma (SELECT Count(*) From Customers) tablonun şemasına uygun olmayan verileri döndürse bile bir CustomersTableAdapter için geçerlidir.

ClearBeforeFill özelliği

Bir TableAdapter DataAdapter sınıf temelinde kullanılmayan bir özellik ekler.Varsayılan olarak, her zaman birTableAdapter'in veri tablosunu doldurmak için sorgu çalıştırabiliriniz, veriler silinir ve yalnızca sorgu sonuçlarını tabloya yüklenir.Bir veri tablosunda varolan verilere bir sorgudan döndürülen verileri eklemek veya birleştirmek istiyorsanız, TableAdapter'nin ClearBeforeFill özelliğini false ne ayarlayın.Ne olursa olsun verileri silmeye bakılmaksızın, isterse güncellemeleri veritabanına geri göndermeniz gerekir.Tablodaki verileri, tabloyu dolduran başka bir sorguyu çalıştırmadan önce yapılan değişiklikleri kaydetmeyi unutmayın.Daha fazla bilgi için bkz. Nasıl yapılır: TableAdapter Kullanarak Veri Güncelleştirme.

TableAdapter devralma

TableAdapterler yapılandırılmış DataAdapter içererek standart veri bağdaştırıcıları işlevselliğini genişletir.Varsayılan olarak, TableAdapter Component dan devralır ve bir DataAdapter sınıfına atama yapılamaz.Bir DataAdapter a TableAdapter ataması InvalidCastException nde sonuçlanır.Bir TableAdapterin temel sınıfını değiştirmek için Temel sınıf içinde Dataset Designer nin TableAdapter özelliğininde bir Component den elde edilen bir sınıf yazabilirsiniz.

TableAdapter Yöntemleri ve Özellikleri

TableAdapter sınıfı, .NET Framework ın bir parçası değildir ve bu nedenle belgelerinde veya Nesne Tarayıcısı nde görüntüleyemezsiniz.Yukarıda belirtilen sihirbazlardan birini kullandığınızda, tasarım zamanında oluşturulur.Çalışmakta olduğunuz tablonun adını temel alarak bir TableAdapter oluşturduğunuzda bir TableAdaptere bir isim atanır.Örneğin, Orders olarak isimlendirilen bir veritabanında bir tabloyu temel bir TableAdapter oluşturduğunuz zaman, TableAdapter OrdersTableAdapter olarak isimlendirilmelidir.TableAdapterın sınıf adı Dataset Designer nde adı özelliğini kullanılarak değiştirilebilir.

TableAdapterlerin yaygın olarak kullanılan yöntemleri ve özellikleri şunlardır:

Üye

Tanımlama

TableAdapter.Fill

TableAdapter'ın ilişkili veri tablosu TableAdapter'ın SELECT komutunun sonuçları ile doldururDaha fazla bilgi için bkz. Nasıl Yapılır: Bir Veri Kümesini Verilerle Doldurma.

TableAdapter.Update

Değişiklikleri veritabanına geri gönderir ve güncellemeden etkilenen satırların sayısını gösteren bir tamsayı döndürür.Daha fazla bilgi için bkz. Nasıl yapılır: TableAdapter Kullanarak Veri Güncelleştirme.

TableAdapter.GetData

Veri ile doldurulan yeni bir DataTable döner.

TableAdapter.Insert

Veri tablosunda yeni bir satır oluşturur.Daha fazla bilgi için bkz. Nasıl yapılır: DataTable Tablosuna Satır Ekleme.

TableAdapter.ClearBeforeFill

Bu Fill methodların birini çağırmadan önceVeri tablosunun boşaltılır olup olmadığını belirler.

TableAdapter Güncelleştirme Yöntemi

TableAdapterler veritabanından okuma ve yazma için veri komutlarını kullanır.TableAdapterin başlangıç Fill (ana) sorgusu, veri tablosu ile birlikte InsertCommand, UpdateCommand ile ilişkili ve TableAdapter.Update yöntemi ile ilişkili DeleteCommand komutlarının şemasını oluşturmak için temel alarak kullanılır.Bu TableAdapterin Update yöntemini çağırmada, TableAdapterler orjinal olarak yapılandırıldığı ve TableAdapter Sorgu Yapılandırma Sihirbazı ile eklenen bir ek sorgulardan biri olmadığı zaman oluşturulan hesap özeti çalıştırılır.

Bir TableAdapter kullandığınızda, istendiği şekilde işlem gerçekleştirmede komutları ile aynı işlemleri etkili olarak gerçekleştirir.Örneğin, bağdaştırıcının Fill yöntemini çağırdığınızda, bağdaştırıcı SelectCommand özelliğinde veri komutunu çalıştırır ve veri tablosuna sonuç kümesini yüklemek için veri okuyucu (örneğin, SqlDataReader) kullanır.Benzer şekilde, bağdaştırıcının Update yöntemini çağırdığınızda, veri tablosunda her bir değiştirilen kayıt için ilgili komutu ( UpdateCommand, InsertCommand ve DeleteCommand özellikleri içinde) çalıştırır.

[!NOT]

Ana sorguda bilgi yeterli ise, InsertCommand, UpdateCommand ve DeleteCommand komutları TableAdapter oluşturulduğunda varsayılan olarak oluşturulur.TableAdapterin ana sorgusu birden çok tablo SELECT hesap özeti olduğunda , tasarımcının InsertCommand, UpdateCommand ve DeleteCommand oluşturması mümkün olmayacak olabilir.Eğer bu komutlar oluşturulmaz ise, TableAdapter.Update methodu yürütülürken bir hata alabilirsiniz.

TableAdapter GenerateDBDirectMethods Özelliği

Bu InsertCommand, UpdateCommand ve DeleteCommand una ek olarak TableAdapterler, doğrudan veritabanına karşı yürütülen yöntemler ile oluşturulur.Bu yöntemler (TableAdapter.Insert, TableAdapter.Update ve TableAdapter.Delete) veritabanındaki verileri işlemek içindoğrudan çağrılabilir.İlişkili veri tablosunda bekleyen ekleme güncelleştirme ve silme işlemi için TableAdapter.Update çağırmak yerine kodda bu bireysel methodları çağırabilirsiniz anlamına gelir.

Bu doğrudan yöntemleri oluşturmak istemiyorsanız, false ( Özellikler penceresi içinde)ne TableAdapterin GenerateDbDirectMethods özelliğini ayarla.TableAdaptere eklenen ek sorgular tek başına sorgulardır— bu methodları oluşturmazlar.

Boş değer atanabilir tipleri için TableAdapter desteği

Boş değer atanabilir tipleri için TableAdapter desteği Nullable(Of T) ve T?.Visual Basic'te Boş değer atanabilir tipleri hakkında daha fazla bilgi için bkz: Boş Değer Atanabilen Değer Türleri (Visual Basic).C# ta Boş değer atanabilir tipleri hakkında daha fazla bilgi için bkz: Boş Değer Atanabilir Türleri Kullanma (C# Programlama Kılavuzu).

Ayrıca bkz.

Görevler

Nasıl yapılır: Bir Veritabanındaki Verilere Bağlanma

İzlenecek yol: Veritabanındaki Verilere Bağlanma (Windows Forms)

Kavramlar

Uygulamanızı Veri Almaya Hazırlama

Uygulamanıza Veri Getirme

Visual Studio'da Verilere Denetimler Bağlama

Uygulamanızdaki Verileri Düzenleme

Verileri Doğrulama

Verileri Kaydetme

Diğer Kaynaklar

Veri İzlenecek Yollar