DataSet’e Var Olan Kısıtlamaları Ekleme
DataAdapter'ın Fill yöntemi yalnızca bir DataSet veri kaynağındaki tablo sütunları ve satırlarıyla doldurur; kısıtlamalar genellikle veri kaynağı tarafından ayarlansa da, Fill yöntemi bu şema bilgilerini varsayılan olarak DataSet'e eklemez. DataSet'i bir veri kaynağındaki mevcut birincil anahtar kısıtlama bilgileriyle doldurmak için, DataAdapter'ın FillSchema yöntemini çağırabilir veya Fill'i çağırmadan önce DataAdapter'ın MissingSchemaAction özelliğini AddWithKey olarak ayarlayabilirsiniz. Bu, DataSet'teki birincil anahtar kısıtlamalarının veri kaynağındakileri yansıtmasını sağlar. Yabancı anahtar kısıtlama bilgileri dahil değildir ve DataTable Kısıtlamaları'nda gösterildiği gibi açıkça oluşturulmalıdır.
DataSet'i verilerle doldurmadan önce şema bilgilerini eklemek, birincil anahtar kısıtlamalarının DataTable DataSet'teki nesnelere dahil edilmesini sağlar. Sonuç olarak, DataSet'i doldurmak için ek çağrılar yapıldığında, veri kaynağındaki yeni satırları her DataTable'daki geçerli satırlarla eşleştirmek için birincil anahtar sütun bilgileri kullanılır ve tablolardaki geçerli verilerin üzerine veri kaynağındaki verilerle yazılır. Şema bilgileri olmadan, veri kaynağındaki yeni satırlar DataSet'e eklenir ve yinelenen satırlar elde edilir.
Not
Veri kaynağındaki bir sütun otomatik artırma, FillSchema yöntemi veya AddWithKey MissingSchemaAction içeren Fill yöntemi olarak tanımlanırsa, AutoIncrement özelliği olarak ayarlanmış true
bir DataColumn oluşturur. Ancak AutoIncrementStep ve AutoIncrementSeed değerlerini kendiniz ayarlamanız gerekir. Sütunları otomatik olarak artırma hakkında daha fazla bilgi için bkz . AutoIncrement Sütunları Oluşturma.
FillSchema'nın kullanılması veya MissingSchemaAction değerinin AddWithKey olarak ayarlanması, birincil anahtar sütun bilgilerini belirlemek için veri kaynağında ek işleme gerektirir. Bu ek işleme performansı engelleyebilir. Tasarım zamanında birincil anahtar bilgilerini biliyorsanız, en iyi performansı elde etmek için birincil anahtar sütununu veya sütunlarını açıkça belirtmenizi öneririz. Bir tablonun birincil anahtar bilgilerini açıkça ayarlama hakkında bilgi için bkz . Birincil Anahtarları Tanımlama.
Aşağıdaki kod örneğinde FillSchema kullanılarak DataSet'e şema bilgilerinin nasıl ekleneceği gösterilmektedir:
Dim custDataSet As New DataSet()
custAdapter.FillSchema(custDataSet, SchemaType.Source, "Customers")
custAdapter.Fill(custDataSet, "Customers")
var custDataSet = new DataSet();
custAdapter.FillSchema(custDataSet, SchemaType.Source, "Customers");
custAdapter.Fill(custDataSet, "Customers");
Aşağıdaki kod örneği, Fill yönteminin MissingSchemaAction.AddWithKey özelliğini kullanarak DataSet'e şema bilgilerinin nasıl ekleneceğini gösterir:
Dim custDataSet As New DataSet()
custAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
custAdapter.Fill(custDataSet, "Customers")
var custDataSet = new DataSet();
custAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
custAdapter.Fill(custDataSet, "Customers");
Birden çok sonuç kümesini işleme
DataAdapter SelectCommand'dan döndürülen birden çok sonuç kümesiyle karşılaşırsa DataSet'te birden çok tablo oluşturur. Tablolara "Tablo0" yerine Tablo'dan başlayarak Tablo N'nin sıfır tabanlı artımlı varsayılan adı verilir. Tablo adı FillSchema yöntemine bağımsız değişken olarak geçirilirse, tablolara "TableName0" yerine TableName ile başlayarak TabloAdı N'nin sıfır tabanlı artımlı adı verilir.
Not
OleDbDataAdapter nesnesinin FillSchema yöntemi birden çok sonuç kümesi döndüren bir komut için çağrılırsa, yalnızca ilk sonuç kümesindeki şema bilgileri döndürülür. OleDbDataAdapter kullanarak birden çok sonuç kümesi için şema bilgilerini döndürürken, AddWithKey'in MissingSchemaAction değerini belirtmeniz ve Fill yöntemini çağırırken şema bilgilerini almanız önerilir.