Bagikan melalui


Menambahkan Batasan yang Ada ke DataSet

Metode FillDataAdapter mengisi DataSet hanya dengan kolom tabel dan baris dari sumber data; meskipun batasan umumnya diatur oleh sumber data, Fill metode tidak menambahkan informasi skema ini ke DataSet secara default. Untuk mengisi dengan informasi batasan kunci utama yang sudah ada dari sumber data, Anda dapat memanggil metode dari DataAdapter, atau mengatur properti dari ke sebelum memanggil Fill. Ini akan memastikan bahwa batasan kunci utama dalam DataSet mencerminkan batasan tersebut di sumber data. Informasi batasan kunci asing tidak disertakan dan harus dibuat secara eksplisit, seperti yang ditunjukkan dalam Batasan DataTable.

Menambahkan informasi skema ke DataSet sebelum mengisinya dengan data memastikan bahwa batasan kunci utama disertakan dengan DataTable objek dalam Himpunan Data. Akibatnya, ketika panggilan tambahan untuk mengisi DataSet dilakukan, informasi kolom kunci utama digunakan untuk mencocokkan baris baru dari sumber data dengan baris saat ini di setiap DataTable, dan data saat ini dalam tabel ditimpa dengan data dari sumber data. Tanpa informasi skema, baris baru dari sumber data ditambahkan ke Himpunan Data, menghasilkan baris duplikat.

Catatan

Jika kolom dalam sumber data diidentifikasi sebagai auto-increment, metode FillSchema atau metode Fill dengan MissingSchemaAction"AddWithKey" membuat DataColumn dengan properti AutoIncrement yang diatur ke true. Namun, Anda harus mengatur nilai AutoIncrementStep dan AutoIncrementSeed sendiri. Untuk informasi selengkapnya tentang kolom peningkatan otomatis, lihat Membuat Kolom AutoIncrement.

Menggunakan FillSchema atau mengatur MissingSchemaAction ke AddWithKey memerlukan pemrosesan tambahan di sumber data untuk menentukan informasi kolom kunci utama. Pemrosesan tambahan ini dapat menghambat performa. Jika Anda mengetahui informasi kunci utama pada waktu desain, kami sarankan Anda secara eksplisit menentukan kolom atau kolom kunci utama untuk mencapai performa optimal. Untuk informasi tentang mengatur informasi kunci primer secara eksplisit untuk tabel, lihat Menentukan Kunci Primer.

Contoh kode berikut menunjukkan cara menambahkan informasi skema ke DataSet menggunakan FillSchema:

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");

Contoh kode berikut menunjukkan cara menambahkan informasi skema ke DataSet menggunakan properti MissingSchemaAction.AddWithKey dari Fill metode:

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");

Menangani beberapa kumpulan hasil

DataAdapter Jika menemukan beberapa kumpulan hasil yang dikembalikan dari SelectCommand, itu akan membuat beberapa tabel di Himpunan Data. Tabel akan diberi nama Table default inkremental N berbasis nol, dimulai dengan Table bukan "Table0". Jika nama tabel diteruskan sebagai argumen ke FillSchema metode , tabel akan diberi nama TableNametambahan N berbasis nol, dimulai dengan TableName bukan "TableName0".

Catatan

Jika metode FillSchema dari objek OleDbDataAdapter dipanggil untuk perintah yang mengembalikan beberapa kumpulan hasil, hanya informasi skema dari kumpulan hasil pertama yang dikembalikan. Saat mengembalikan informasi skema untuk beberapa kumpulan hasil menggunakan OleDbDataAdapter, disarankan agar Anda menentukan MissingSchemaAction dari AddWithKey dan mendapatkan informasi skema saat memanggil metode Fill.

Lihat juga