Share via


DbDataAdapter.Fill Metode

Definisi

DataSet Mengisi atau DataTable.

Overload

Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior)

Menambahkan atau merefresh baris dalam rentang tertentu di DataSet agar sesuai dengan baris di sumber data menggunakan DataSet nama tabel sumber, string perintah, dan perilaku perintah.

Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior)

Menambahkan atau menyegarkan baris dalam rentang tertentu di DataSet agar sesuai dengan baris di sumber data menggunakan DataSet nama dan DataTable .

Fill(DataSet, String, IDataReader, Int32, Int32)

Menambahkan atau merefresh baris dalam rentang tertentu agar DataSet sesuai dengan baris di sumber data menggunakan DataSetnama , DataTable, dan IDataReader .

Fill(DataSet, Int32, Int32, String)

Menambahkan atau menyegarkan baris dalam rentang tertentu di DataSet agar sesuai dengan baris di sumber data menggunakan DataSet nama dan DataTable .

Fill(Int32, Int32, DataTable[])

Menambahkan atau menyegarkan baris dalam satu atau beberapa DataTable objek agar sesuai dengan yang ada di sumber data mulai dari rekaman yang ditentukan dan mengambil hingga jumlah rekaman maksimum yang ditentukan.

Fill(DataTable)

Menambahkan atau merefresh baris dalam rentang tertentu di DataSet agar sesuai dengan baris di sumber data menggunakan DataTable nama .

Fill(DataTable, IDataReader)

Menambahkan atau menyegarkan baris dalam DataTable agar sesuai dengan baris di sumber data menggunakan nama dan IDataReader yang ditentukanDataTable.

Fill(DataSet, String)

Menambahkan atau merefresh baris di DataSet agar sesuai dengan baris di sumber data menggunakan DataSet nama dan DataTable .

Fill(DataSet)

Menambahkan atau me-refresh baris di DataSet.

Fill(DataTable, IDbCommand, CommandBehavior)

Menambahkan atau me-refresh baris dalam DataTable agar sesuai dengan baris di sumber data menggunakan , IDbCommand dan CommandBehavioryang ditentukanDataTable.

Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior)

Sumber:
DbDataAdapter.cs
Sumber:
DbDataAdapter.cs
Sumber:
DbDataAdapter.cs

Menambahkan atau merefresh baris dalam rentang tertentu di DataSet agar sesuai dengan baris di sumber data menggunakan DataSet nama tabel sumber, string perintah, dan perilaku perintah.

protected:
 virtual int Fill(System::Data::DataSet ^ dataSet, int startRecord, int maxRecords, System::String ^ srcTable, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
protected virtual int Fill (System.Data.DataSet dataSet, int startRecord, int maxRecords, string srcTable, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
override this.Fill : System.Data.DataSet * int * int * string * System.Data.IDbCommand * System.Data.CommandBehavior -> int
Protected Overridable Function Fill (dataSet As DataSet, startRecord As Integer, maxRecords As Integer, srcTable As String, command As IDbCommand, behavior As CommandBehavior) As Integer

Parameter

dataSet
DataSet

DataSet untuk diisi dengan rekaman dan, jika perlu, skema.

startRecord
Int32

Nomor rekaman berbasis nol untuk memulai.

maxRecords
Int32

Jumlah maksimum rekaman yang akan diambil. Tentukan 0 untuk mengambil semua rekaman setelah rekaman mulai.

srcTable
String

Nama tabel sumber yang digunakan untuk pemetaan tabel.

command
IDbCommand

Pernyataan SQL SELECT yang digunakan untuk mengambil baris dari sumber data.

behavior
CommandBehavior

Salah CommandBehavior satu nilai.

Mengembalikan

Jumlah baris yang berhasil ditambahkan atau disegarkan di DataSet. Ini tidak termasuk baris yang dipengaruhi oleh pernyataan yang tidak mengembalikan baris.

Pengecualian

Tabel sumber tidak valid.

Parameternya startRecord kurang dari 0.

-atau-

Parameternya maxRecords kurang dari 0.

Keterangan

Nilai maxRecords 0 mendapatkan semua rekaman yang ditemukan setelah rekaman awal. Jika maxRecords lebih besar dari jumlah baris yang tersisa, hanya baris yang tersisa yang dikembalikan dan tidak ada kesalahan yang dikeluarkan.

Metode mengambil Fill baris dari sumber data menggunakan pernyataan SELECT yang ditentukan oleh properti terkait SelectCommand . Objek koneksi yang terkait dengan pernyataan SELECT harus valid, tetapi tidak perlu dibuka. Jika koneksi ditutup sebelum Fill dipanggil, koneksi dibuka untuk mengambil data, lalu ditutup. Jika koneksi terbuka sebelum Fill dipanggil, koneksi tetap terbuka.

Fill Operasi kemudian menambahkan baris ke objek tujuan DataTable di DataSet, membuat DataTable objek jika belum ada. Saat membuat DataTable objek, Fill operasi biasanya hanya membuat metadata nama kolom. Namun, jika MissingSchemaAction properti diatur ke AddWithKey, kunci dan batasan primer yang sesuai juga dibuat.

DbDataAdapter Jika menemukan kolom duplikat saat mengisi DataTable, kolom akan menghasilkan nama untuk kolom berikutnya, menggunakan pola "columnname1", "columnname2", "columnname3", dan sebagainya. Jika data masuk berisi kolom yang tidak disebutkan namanya, data tersebut ditempatkan sesuai DataSet dengan pola "Column1", "Column2", dan sebagainya. Saat beberapa tataan hasil ditambahkan ke setiap tataan DataSet hasil ditempatkan dalam tabel terpisah. Tataan hasil tambahan dinamai dengan menambahkan nilai integral ke nama tabel yang ditentukan (misalnya, "Tabel", "Table1", "Table2", dan sebagainya). Jika aplikasi Anda menggunakan nama kolom dan tabel, pastikan tidak ada konflik dengan pola penamaan ini.

Metode ini Fill mendukung skenario di mana DataSet berisi beberapa DataTable objek yang namanya hanya berbeda menurut kasus. Dalam situasi seperti itu, Fill lakukan perbandingan peka huruf besar/kecil untuk menemukan tabel yang sesuai, dan membuat tabel baru jika tidak ada kecocokan yang tepat. Kode C# berikut mengilustrasikan perilaku ini.

DataSet dataset = new DataSet();  
dataset.Tables.Add("aaa");  
dataset.Tables.Add("AAA");  
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.  
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".  

Jika Fill dipanggil dan DataSet hanya berisi satu DataTable yang namanya hanya berbeda menurut kasus, yang DataTable diperbarui. Dalam skenario ini, perbandingannya tidak peka huruf besar/kecil. Kode C# berikut mengilustrasikan perilaku ini.

DataSet dataset = new DataSet();  
dataset.Tables.Add("aaa");  
adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.  

Anda dapat menggunakan Fill metode beberapa kali pada yang sama DataTable. Jika kunci primer ada, baris masuk digabungkan dengan baris yang cocok yang sudah ada. Jika tidak ada kunci primer, baris masuk ditambahkan ke DataTable.

Jika SelectCommand mengembalikan hasil GABUNGAN LUAR, maka DataAdapter tidak akan mengatur nilai PrimaryKey untuk menghasilkan DataTable. Anda harus secara eksplisit menentukan kunci primer untuk memastikan bahwa baris duplikat diselesaikan dengan benar. Untuk informasi selengkapnya, lihat Menentukan Kunci Utama.

Catatan

Saat menangani pernyataan SQL batch yang mengembalikan beberapa hasil, implementasi Fill dan FillSchema untuk penyedia data .NET Framework mengambil informasi skema hanya untuk hasil pertama.

Catatan Bagi Inheritor

Kelebihan metode Fill(DataSet) ini dilindungi dan dirancang untuk digunakan oleh penyedia data .NET Framework.

Lihat juga

Berlaku untuk

Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior)

Sumber:
DbDataAdapter.cs
Sumber:
DbDataAdapter.cs
Sumber:
DbDataAdapter.cs

Menambahkan atau merefresh baris dalam rentang tertentu agar DataSet sesuai dengan baris di sumber data menggunakan DataSet nama dan DataTable .

protected:
 virtual int Fill(cli::array <System::Data::DataTable ^> ^ dataTables, int startRecord, int maxRecords, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
protected virtual int Fill (System.Data.DataTable[] dataTables, int startRecord, int maxRecords, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
override this.Fill : System.Data.DataTable[] * int * int * System.Data.IDbCommand * System.Data.CommandBehavior -> int
Protected Overridable Function Fill (dataTables As DataTable(), startRecord As Integer, maxRecords As Integer, command As IDbCommand, behavior As CommandBehavior) As Integer

Parameter

dataTables
DataTable[]

Objek DataTable yang akan diisi dari sumber data.

startRecord
Int32

Nomor rekaman berbasis nol untuk memulai.

maxRecords
Int32

Jumlah maksimum rekaman yang akan diambil. Tentukan 0 untuk mengambil semua rekaman setelah rekaman mulai.

command
IDbCommand

yang IDbCommand dijalankan untuk mengisi DataTable objek.

behavior
CommandBehavior

Salah CommandBehavior satu nilai.

Mengembalikan

Jumlah baris yang ditambahkan ke atau disegarkan dalam tabel data.

Pengecualian

tidak DataSet valid.

Tabel sumber tidak valid.

-atau-

Koneksi tidak valid.

Koneksi tidak dapat ditemukan.

Parameternya startRecord kurang dari 0.

-atau-

Parameternya maxRecords kurang dari 0.

Keterangan

Nilai maxRecords 0 mendapatkan semua rekaman yang ditemukan setelah rekaman awal. Jika maxRecords lebih besar dari jumlah baris yang tersisa, hanya baris yang tersisa yang dikembalikan dan tidak ada kesalahan yang dikeluarkan.

Metode mengambil Fill data dari sumber data menggunakan pernyataan SELECT. Objek IDbConnection yang terkait dengan pernyataan SELECT harus valid, tetapi tidak perlu terbuka. IDbConnection Jika ditutup sebelum Fill dipanggil, data dibuka untuk mengambil data, lalu ditutup. Jika koneksi terbuka sebelum Fill dipanggil, koneksi tetap terbuka.

Jika perintah tidak mengembalikan baris apa pun, tidak ada tabel yang ditambahkan ke DataSet, tetapi tidak ada pengecualian yang dinaikkan.

DbDataAdapter Jika objek menemukan kolom duplikat saat mengisi DataTable, objek akan menghasilkan nama untuk kolom berikutnya, menggunakan pola "columnname1", "columnname2", "columnname3", dan sebagainya. Jika data masuk berisi kolom yang tidak disebutkan namanya, data tersebut ditempatkan sesuai DataSet dengan pola "Column1", "Column2", dan sebagainya.

Saat kueri yang ditentukan mengembalikan beberapa hasil, setiap tataan hasil ditempatkan dalam tabel terpisah. Tataan hasil tambahan dinamai dengan menambahkan nilai integral ke nama tabel yang ditentukan (misalnya, "Tabel", "Table1", "Table2", dan sebagainya). Karena tidak ada tabel yang dibuat untuk kueri yang tidak mengembalikan baris, jika Anda memproses kueri sisipan diikuti dengan kueri pilih, tabel yang dibuat untuk kueri pilih akan diberi nama "Tabel", karena tabel tersebut adalah tabel pertama yang dibuat. Jika aplikasi Anda menggunakan nama kolom dan tabel, pastikan tidak ada konflik dengan pola penamaan ini.

Metode ini Fill mendukung skenario di mana DataSet berisi beberapa DataTable objek yang namanya hanya berbeda menurut kasus. Dalam situasi seperti itu, Fill lakukan perbandingan peka huruf besar/kecil untuk menemukan tabel yang sesuai, dan membuat tabel baru jika tidak ada kecocokan yang tepat. Kode C# berikut mengilustrasikan perilaku ini.

DataSet dataset = new DataSet();  
dataset.Tables.Add("aaa");  
dataset.Tables.Add("AAA");  
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.  
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".  

Jika Fill dipanggil dan DataSet hanya berisi satu DataTable yang namanya hanya berbeda menurut kasus, yang DataTable diperbarui. Dalam skenario ini, perbandingannya tidak peka huruf besar/kecil. Kode C# berikut mengilustrasikan perilaku ini.

DataSet dataset = new DataSet();  
dataset.Tables.Add("aaa");  
adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.  

Jika terjadi kesalahan atau pengecualian saat mengisi tabel data, baris yang ditambahkan sebelum terjadinya kesalahan tetap berada dalam tabel data. Sisa operasi dibatalkan.

Saat pernyataan SELECT yang digunakan untuk mengisi DataTable objek mengembalikan beberapa hasil, seperti pernyataan SQL batch, ketahui hal berikut:

  • Saat memproses beberapa hasil dari pernyataan SQL batch, maxRecords hanya berlaku untuk hasil pertama. Hal yang sama berlaku untuk baris yang berisi hasil bab (.NET Framework Penyedia Data hanya untuk OLE DB). Hasil tingkat atas dibatasi oleh maxRecords, tetapi semua baris anak ditambahkan.

  • Jika salah satu hasil berisi kesalahan, semua hasil berikutnya akan dilewati.

Catatan

DataSet tidak akan berisi lebih dari jumlah rekaman yang ditunjukkan oleh maxRecords. Namun, seluruh hasil yang dihasilkan oleh kueri masih dikembalikan dari server.

Catatan Bagi Inheritor

Saat mengambil alih di kelas turunan Fill(DataSet) , pastikan untuk memanggil metode kelas Fill(DataSet) dasar.

Lihat juga

Berlaku untuk

Fill(DataSet, String, IDataReader, Int32, Int32)

Menambahkan atau merefresh baris dalam rentang tertentu agar DataSet sesuai dengan baris di sumber data menggunakan DataSetnama , DataTable, dan IDataReader .

protected:
 virtual int Fill(System::Data::DataSet ^ dataSet, System::String ^ srcTable, System::Data::IDataReader ^ dataReader, int startRecord, int maxRecords);
protected virtual int Fill (System.Data.DataSet dataSet, string srcTable, System.Data.IDataReader dataReader, int startRecord, int maxRecords);
override this.Fill : System.Data.DataSet * string * System.Data.IDataReader * int * int -> int
Protected Overridable Function Fill (dataSet As DataSet, srcTable As String, dataReader As IDataReader, startRecord As Integer, maxRecords As Integer) As Integer

Parameter

dataSet
DataSet

DataSet untuk mengisi dengan rekaman dan, jika perlu, skema.

srcTable
String

Nama yang DataTable akan digunakan untuk pemetaan tabel.

dataReader
IDataReader

Nama IDataReader.

startRecord
Int32

Nomor rekaman berbasis nol untuk memulai.

maxRecords
Int32

Jumlah maksimum rekaman yang akan diambil. Tentukan 0 untuk mengambil semua rekaman setelah rekaman mulai.

Mengembalikan

Jumlah baris yang berhasil ditambahkan ke atau disegarkan di DataSet. Ini tidak termasuk baris yang dipengaruhi oleh pernyataan yang tidak mengembalikan baris.

Pengecualian

startRecord kurang dari 0.

-atau-

maxRecords kurang dari 0.

Keterangan

Nilai maxRecords 0 mendapatkan semua rekaman yang ditemukan setelah rekaman awal. Jika maxRecords lebih besar dari jumlah baris yang tersisa, hanya baris yang tersisa yang dikembalikan dan tidak ada kesalahan yang dikeluarkan.

Berlaku untuk

Fill(DataSet, Int32, Int32, String)

Sumber:
DbDataAdapter.cs
Sumber:
DbDataAdapter.cs
Sumber:
DbDataAdapter.cs

Menambahkan atau merefresh baris dalam rentang tertentu agar DataSet sesuai dengan baris di sumber data menggunakan DataSet nama dan DataTable .

public:
 int Fill(System::Data::DataSet ^ dataSet, int startRecord, int maxRecords, System::String ^ srcTable);
public int Fill (System.Data.DataSet dataSet, int startRecord, int maxRecords, string srcTable);
override this.Fill : System.Data.DataSet * int * int * string -> int
Public Function Fill (dataSet As DataSet, startRecord As Integer, maxRecords As Integer, srcTable As String) As Integer

Parameter

dataSet
DataSet

DataSet untuk mengisi dengan rekaman dan, jika perlu, skema.

startRecord
Int32

Nomor rekaman berbasis nol untuk memulai.

maxRecords
Int32

Jumlah maksimum rekaman yang akan diambil. Tentukan 0 untuk mengambil semua rekaman setelah rekaman mulai.

srcTable
String

Nama tabel sumber yang akan digunakan untuk pemetaan tabel.

Mengembalikan

Jumlah baris yang berhasil ditambahkan ke atau disegarkan di DataSet. Ini tidak termasuk baris yang dipengaruhi oleh pernyataan yang tidak mengembalikan baris.

Pengecualian

Tidak DataSet valid.

Tabel sumber tidak valid.

-atau-

Koneksi tidak valid.

Koneksi tidak dapat ditemukan.

Parameternya startRecord kurang dari 0.

-atau-

Parameternya maxRecords kurang dari 0.

Contoh

Contoh berikut menggunakan kelas turunan, OleDbDataAdapter, untuk mengisi DataSet dengan 15 baris, dimulai dari baris 10, dari tabel Kategori . Contoh ini mengasumsikan bahwa Anda telah membuat OleDbDataAdapter dan DataSet.

public void GetRecords()
{
    // ...
    // create dataSet and adapter
    // ...
    adapter.Fill(dataSet,9,15,"Categories");
}
Public Sub GetRecords()
    ' ...
    ' create dataSet and adapter
    ' ...
    adapter.Fill(dataSet, 9, 15, "Categories")
End Sub

Keterangan

Nilai maxRecords 0 mendapatkan semua rekaman yang ditemukan setelah rekaman awal. Jika maxRecords lebih besar dari jumlah baris yang tersisa, hanya baris yang tersisa yang dikembalikan, dan tidak ada kesalahan yang dikeluarkan.

Jika perintah pilih yang sesuai adalah pernyataan yang mengembalikan beberapa hasil, Fill hanya berlaku maxRecords untuk hasil pertama.

Metode mengambil Fill data dari sumber data menggunakan pernyataan SELECT. Objek IDbConnection yang terkait dengan pernyataan SELECT harus valid, tetapi tidak perlu dibuka. IDbConnection Jika ditutup sebelum Fill dipanggil, data akan dibuka untuk mengambil data lalu ditutup. Jika koneksi terbuka sebelum Fill dipanggil, koneksi tetap terbuka.

Jika perintah tidak mengembalikan baris apa pun, tidak ada tabel yang ditambahkan ke DataSet, tetapi tidak ada pengecualian yang dimunculkan.

DbDataAdapter Jika objek menemukan kolom duplikat saat mengisi DataTable, objek akan menghasilkan nama untuk kolom berikutnya, menggunakan pola "columnname1", "columnname2", "columnname3", dan sebagainya. Jika data masuk berisi kolom yang tidak disebutkan namanya, data tersebut ditempatkan sesuai DataSet dengan pola "Column1", "Column2", dan sebagainya.

Saat kueri yang ditentukan mengembalikan beberapa hasil, setiap tataan hasil ditempatkan dalam tabel terpisah. Tataan hasil tambahan dinamai dengan menambahkan nilai integral ke nama tabel yang ditentukan (misalnya, "Tabel", "Table1", "Table2", dan sebagainya). Karena tidak ada tabel yang dibuat untuk kueri yang tidak mengembalikan baris, jika Anda memproses kueri sisipan diikuti dengan kueri pemilih, tabel yang dibuat untuk kueri pemilih bernama "Tabel", karena ini adalah tabel pertama yang dibuat. Jika aplikasi Anda menggunakan nama kolom dan tabel, pastikan tidak ada konflik dengan pola penamaan ini.

Metode ini Fill mendukung skenario di mana DataSet berisi beberapa DataTable objek yang namanya hanya berbeda menurut kasus. Dalam situasi seperti itu, Fill lakukan perbandingan peka huruf besar/kecil untuk menemukan tabel yang sesuai, dan membuat tabel baru jika tidak ada kecocokan yang tepat. Kode C# berikut mengilustrasikan perilaku ini.

DataSet dataset = new DataSet();  
dataset.Tables.Add("aaa");  
dataset.Tables.Add("AAA");  
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.  
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".  

Jika Fill dipanggil dan DataSet hanya berisi satu DataTable yang namanya hanya berbeda menurut kasus, yang DataTable diperbarui. Dalam skenario ini, perbandingannya tidak peka huruf besar/kecil. Kode C# berikut mengilustrasikan perilaku ini.

DataSet dataset = new DataSet();  
dataset.Tables.Add("aaa");  
adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.  

Jika terjadi kesalahan atau pengecualian saat mengisi tabel data, baris yang ditambahkan sebelum terjadinya kesalahan tetap berada dalam tabel data. Sisa operasi dibatalkan.

Saat pernyataan SELECT yang digunakan untuk mengisi DataSet mengembalikan beberapa hasil, seperti pernyataan SQL batch, ketahui hal-hal berikut:

  • Saat memproses beberapa hasil dari pernyataan SQL batch, maxRecords hanya berlaku untuk hasil pertama. Hal yang sama berlaku untuk baris yang berisi hasil bab (.NET Framework Penyedia Data hanya untuk OLE DB). Hasil tingkat atas dibatasi oleh maxRecords, tetapi semua baris anak ditambahkan.

  • Jika salah satu hasil berisi kesalahan, semua hasil berikutnya dilewati dan tidak ditambahkan ke DataSet.

Saat menggunakan panggilan berikutnya Fill untuk merefresh konten DataSet, dua kondisi harus dipenuhi:

  1. Pernyataan SQL harus cocok dengan yang awalnya digunakan untuk mengisi DataSet.

  2. Informasi kolom Kunci harus ada.

Jika informasi kunci primer ada, baris duplikat apa pun akan direkonsiliasi dan hanya muncul sekali dalam DataTable yang sesuai dengan DataSet. Informasi kunci primer dapat diatur baik melalui FillSchema, dengan menentukan PrimaryKey properti , DataTableatau dengan mengatur properti ke MissingSchemaActionAddWithKey.

Jika SelectCommand mengembalikan hasil GABUNGAN LUAR, maka DataAdapter tidak akan mengatur nilai PrimaryKey untuk menghasilkan DataTable. Anda harus secara eksplisit menentukan kunci primer untuk memastikan bahwa baris duplikat diselesaikan dengan benar. Untuk informasi selengkapnya, lihat Menentukan Kunci Utama.

Catatan

Saat menangani pernyataan SQL batch yang mengembalikan beberapa hasil, implementasi FillSchema untuk Penyedia Data .NET Framework untuk OLE DB mengambil informasi skema hanya untuk hasil pertama. Untuk mengambil informasi skema untuk beberapa hasil, gunakan Fill dengan diatur MissingSchemaAction ke AddWithKey.

Catatan

DataSet tidak akan berisi lebih dari jumlah rekaman yang ditunjukkan oleh maxRecords. Namun, seluruh tataan hasil yang dihasilkan oleh kueri masih dikembalikan dari server.

Catatan Bagi Inheritor

Saat mengambil alih di kelas turunan Fill(DataSet) , pastikan untuk memanggil metode kelas Fill(DataSet) dasar.

Lihat juga

Berlaku untuk

Fill(Int32, Int32, DataTable[])

Sumber:
DbDataAdapter.cs
Sumber:
DbDataAdapter.cs
Sumber:
DbDataAdapter.cs

Menambahkan atau menyegarkan baris dalam satu atau beberapa DataTable objek agar sesuai dengan yang ada di sumber data mulai dari rekaman yang ditentukan dan mengambil hingga jumlah rekaman maksimum yang ditentukan.

public:
 int Fill(int startRecord, int maxRecords, ... cli::array <System::Data::DataTable ^> ^ dataTables);
public int Fill (int startRecord, int maxRecords, params System.Data.DataTable[] dataTables);
override this.Fill : int * int * System.Data.DataTable[] -> int
Public Function Fill (startRecord As Integer, maxRecords As Integer, ParamArray dataTables As DataTable()) As Integer

Parameter

startRecord
Int32

Nomor rekaman berbasis nol untuk memulai.

maxRecords
Int32

Jumlah maksimum rekaman yang akan diambil. Tentukan 0 untuk mengambil semua rekaman setelah rekaman mulai.

dataTables
DataTable[]

Objek DataTable yang akan diisi dari sumber data.

Mengembalikan

Jumlah baris yang berhasil ditambahkan atau disegarkan dalam DataTable objek. Nilai ini tidak menyertakan baris yang dipengaruhi oleh pernyataan yang tidak mengembalikan baris.

Pengecualian

dataTables adalah null atau array kosong.

startRecord kurang dari 0.

-atau-

maxRecords kurang dari 0.

Keterangan

Nilai maxRecords 0 mendapatkan semua rekaman yang ditemukan setelah rekaman awal. Jika maxRecords lebih besar dari jumlah baris yang tersisa, hanya baris yang tersisa yang dikembalikan, dan tidak ada kesalahan yang dikeluarkan.

Metode mengambil Fill baris dari sumber data menggunakan pernyataan SELECT yang ditentukan oleh properti terkait SelectCommand . Objek koneksi yang terkait dengan pernyataan SELECT harus valid, tetapi tidak perlu dibuka. Jika koneksi ditutup sebelum Fill dipanggil, koneksi dibuka untuk mengambil data, lalu ditutup. Jika koneksi terbuka sebelum Fill dipanggil, koneksi tetap terbuka.

Fill Operasi kemudian menambahkan baris ke objek tujuan DataTable di DataSet, membuat DataTable objek jika belum ada. Saat membuat DataTable objek, Fill operasi biasanya hanya membuat metadata nama kolom. Namun, jika MissingSchemaAction properti diatur ke AddWithKey, kunci dan batasan primer yang sesuai juga dibuat.

Jika SelectCommand mengembalikan hasil GABUNGAN LUAR, maka DataAdapter tidak akan mengatur nilai PrimaryKey untuk menghasilkan DataTable. Anda harus secara eksplisit menentukan kunci primer untuk memastikan bahwa baris duplikat diselesaikan dengan benar. Untuk informasi selengkapnya, lihat Menentukan Kunci Utama.

Jika adaptor data menemukan kolom duplikat saat mengisi DataTable, adaptor data menghasilkan nama untuk kolom berikutnya, menggunakan pola "columnname1", "columnname2", "columnname3", dan sebagainya. Jika data masuk berisi kolom yang tidak disebutkan namanya, data tersebut ditempatkan sesuai DataSet dengan pola "Column1", "Column2", dan sebagainya. Saat beberapa tataan hasil ditambahkan ke , setiap tataan DataSethasil ditempatkan dalam tabel terpisah. Tataan hasil tambahan dinamai dengan menambahkan nilai integral ke nama tabel yang ditentukan (misalnya, "Tabel", "Table1", "Table2", dan sebagainya). Jika aplikasi Anda menggunakan nama kolom dan tabel, pastikan tidak ada konflik dengan pola penamaan ini.

Ketika pernyataan SELECT yang digunakan untuk mengisi DataSet mengembalikan beberapa hasil, seperti pernyataan SQL batch, jika salah satu hasil berisi kesalahan, semua hasil berikutnya dilewati dan tidak ditambahkan ke DataSet.

Anda dapat menggunakan Fill metode beberapa kali pada yang sama DataTable. Jika kunci primer ada, baris masuk digabungkan dengan baris yang cocok yang sudah ada. Jika tidak ada kunci primer, baris masuk ditambahkan ke DataTable.

Catatan

Saat menangani pernyataan SQL batch yang mengembalikan beberapa hasil, implementasi FillSchema untuk Penyedia Data .NET Framework untuk OLE DB mengambil informasi skema hanya untuk hasil pertama. Untuk mengambil informasi skema untuk beberapa hasil, gunakan Fill dengan diatur MissingSchemaAction ke AddWithKey.

Lihat juga

Berlaku untuk

Fill(DataTable)

Sumber:
DbDataAdapter.cs
Sumber:
DbDataAdapter.cs
Sumber:
DbDataAdapter.cs

Menambahkan atau merefresh baris dalam rentang tertentu di DataSet agar sesuai dengan baris di sumber data menggunakan DataTable nama .

public:
 int Fill(System::Data::DataTable ^ dataTable);
public int Fill (System.Data.DataTable dataTable);
override this.Fill : System.Data.DataTable -> int
Public Function Fill (dataTable As DataTable) As Integer

Parameter

dataTable
DataTable

Nama yang DataTable digunakan untuk pemetaan tabel.

Mengembalikan

Jumlah baris yang berhasil ditambahkan atau disegarkan di DataSet. Ini tidak termasuk baris yang dipengaruhi oleh pernyataan yang tidak mengembalikan baris.

Pengecualian

Tabel sumber tidak valid.

Keterangan

Metode mengambil Fill baris dari sumber data menggunakan pernyataan SELECT yang ditentukan oleh properti terkait SelectCommand . Objek koneksi yang terkait dengan pernyataan SELECT harus valid, tetapi tidak perlu dibuka. Jika koneksi ditutup sebelum Fill dipanggil, koneksi dibuka untuk mengambil data, lalu ditutup. Jika koneksi terbuka sebelum Fill dipanggil, koneksi tetap terbuka.

Fill Operasi kemudian menambahkan baris ke objek tujuan DataTable di DataSet, membuat DataTable objek jika belum ada. Saat membuat DataTable objek, Fill operasi biasanya hanya membuat metadata nama kolom. Namun, jika MissingSchemaAction properti diatur ke AddWithKey, kunci dan batasan primer yang sesuai juga dibuat.

DbDataAdapter Jika menemukan kolom duplikat saat mengisi DataTable, kolom akan menghasilkan nama untuk kolom berikutnya, menggunakan pola "columnname1", "columnname2", "columnname3", dan sebagainya. Jika data masuk berisi kolom yang tidak disebutkan namanya, data tersebut ditempatkan sesuai DataSet dengan pola "Column1", "Column2", dan sebagainya. Saat beberapa tataan hasil ditambahkan ke setiap tataan DataSet hasil ditempatkan dalam tabel terpisah.

Kelebihan beban Fill yang mengambil DataTable sebagai parameter hanya mendapatkan hasil pertama. Gunakan kelebihan beban Fill yang mengambil DataSet sebagai parameter untuk mendapatkan beberapa hasil.

Metode ini Fill mendukung skenario di mana DataSet berisi beberapa DataTable objek yang namanya hanya berbeda menurut kasus. Dalam situasi seperti itu, Fill lakukan perbandingan peka huruf besar/kecil untuk menemukan tabel yang sesuai, dan membuat tabel baru jika tidak ada kecocokan yang tepat. Kode C# berikut mengilustrasikan perilaku ini.

DataSet dataset = new DataSet();  
 dataset.Tables.Add("aaa");  
 dataset.Tables.Add("AAA");  
 adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.  
    adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".  

Jika Fill dipanggil dan DataSet hanya berisi satu DataTable yang namanya hanya berbeda menurut kasus, yang DataTable diperbarui. Dalam skenario ini, perbandingannya tidak peka huruf besar/kecil. Kode C# berikut mengilustrasikan perilaku ini.

DataSet dataset = new DataSet();  
 dataset.Tables.Add("aaa");  
    adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.  

Anda dapat menggunakan Fill metode beberapa kali pada yang sama DataTable. Jika kunci primer ada, baris masuk digabungkan dengan baris yang cocok yang sudah ada. Jika tidak ada kunci primer, baris masuk ditambahkan ke DataTable.

Jika SelectCommand mengembalikan hasil GABUNGAN LUAR, maka DataAdapter tidak akan mengatur nilai PrimaryKey untuk menghasilkan DataTable. Anda harus secara eksplisit menentukan kunci primer untuk memastikan bahwa baris duplikat diselesaikan dengan benar. Untuk informasi selengkapnya, lihat Menentukan Kunci Utama.

Catatan

Saat menangani pernyataan SQL batch yang mengembalikan beberapa hasil, implementasi Fill dan FillSchema untuk penyedia data .NET Framework mengambil informasi skema hanya untuk hasil pertama.

Catatan Bagi Inheritor

Kelebihan metode Fill(DataSet) ini dilindungi dan dirancang untuk digunakan oleh penyedia data .NET Framework.

Lihat juga

Berlaku untuk

Fill(DataTable, IDataReader)

Menambahkan atau menyegarkan baris dalam DataTable agar sesuai dengan baris di sumber data menggunakan nama dan IDataReader yang ditentukanDataTable.

protected:
 virtual int Fill(System::Data::DataTable ^ dataTable, System::Data::IDataReader ^ dataReader);
protected virtual int Fill (System.Data.DataTable dataTable, System.Data.IDataReader dataReader);
override this.Fill : System.Data.DataTable * System.Data.IDataReader -> int
Protected Overridable Function Fill (dataTable As DataTable, dataReader As IDataReader) As Integer

Parameter

dataTable
DataTable

DataTable untuk diisi dengan rekaman dan, jika perlu, skema.

dataReader
IDataReader

Nama IDataReader.

Mengembalikan

Jumlah baris yang berhasil ditambahkan atau disegarkan di DataTable. Ini tidak termasuk baris yang dipengaruhi oleh pernyataan yang tidak mengembalikan baris.

Berlaku untuk

Fill(DataSet, String)

Sumber:
DbDataAdapter.cs
Sumber:
DbDataAdapter.cs
Sumber:
DbDataAdapter.cs

Menambahkan atau merefresh baris di DataSet agar sesuai dengan baris di sumber data menggunakan DataSet nama dan DataTable .

public:
 int Fill(System::Data::DataSet ^ dataSet, System::String ^ srcTable);
public int Fill (System.Data.DataSet dataSet, string srcTable);
override this.Fill : System.Data.DataSet * string -> int
Public Function Fill (dataSet As DataSet, srcTable As String) As Integer

Parameter

dataSet
DataSet

DataSet untuk diisi dengan rekaman dan, jika perlu, skema.

srcTable
String

Nama tabel sumber yang digunakan untuk pemetaan tabel.

Mengembalikan

Jumlah baris yang berhasil ditambahkan atau disegarkan di DataSet. Ini tidak termasuk baris yang dipengaruhi oleh pernyataan yang tidak mengembalikan baris.

Pengecualian

Tabel sumber tidak valid.

Contoh

Contoh berikut menggunakan kelas turunan, OleDbDataAdapter, untuk mengisi DataSet dengan baris dari tabel kategori. Contoh ini mengasumsikan bahwa Anda telah membuat OleDbDataAdapter dan DataSet.

public void GetRecords()
{
    // ...
    // create dataSet and adapter
    // ...
    adapter.Fill(dataSet, "Categories");
}
Public Sub GetRecords()
    ' ...
    ' create dataSet and adapter
    ' ...
    adapter.Fill(dataSet, "Categories")
End Sub

Keterangan

Metode mengambil Fill data dari sumber data menggunakan pernyataan SELECT. Objek IDbConnection yang terkait dengan perintah pilih harus valid, tetapi tidak perlu dibuka. IDbConnection Jika ditutup sebelum Fill dipanggil, data dibuka untuk mengambil data, lalu ditutup. Jika koneksi terbuka sebelum Fill dipanggil, koneksi tetap terbuka.

Jika perintah tidak mengembalikan baris apa pun, tidak ada tabel yang ditambahkan ke DataSet, dan tidak ada pengecualian yang dimunculkan.

DbDataAdapter Jika objek menemukan kolom duplikat saat mengisi DataTable, objek akan menghasilkan nama untuk kolom berikutnya, menggunakan pola "columnname1", "columnname2", "columnname3", dan sebagainya. Jika data masuk berisi kolom yang tidak disebutkan namanya, data tersebut ditempatkan sesuai DataSet dengan pola "Column1", "Column2", dan sebagainya.

Saat kueri yang ditentukan mengembalikan beberapa hasil, setiap tataan hasil ditempatkan dalam tabel terpisah. Tataan hasil tambahan dinamai dengan menambahkan nilai integral ke nama tabel yang ditentukan (misalnya, "Tabel", "Table1", "Table2", dan sebagainya). Karena tidak ada tabel yang dibuat untuk kueri yang tidak mengembalikan baris, jika Anda memproses kueri sisipan diikuti dengan kueri pilih, tabel yang dibuat untuk kueri pilih akan diberi nama "Tabel", karena tabel tersebut adalah tabel pertama yang dibuat. Jika aplikasi Anda menggunakan nama kolom dan tabel, pastikan tidak ada konflik dengan pola penamaan ini.

Metode ini Fill mendukung skenario di mana DataSet berisi beberapa DataTable objek yang namanya hanya berbeda menurut kasus. Dalam situasi seperti itu, Fill lakukan perbandingan peka huruf besar/kecil untuk menemukan tabel yang sesuai, dan membuat tabel baru jika tidak ada kecocokan yang tepat. Kode C# berikut mengilustrasikan perilaku ini.

DataSet dataset = new DataSet();  
dataset.Tables.Add("aaa");  
dataset.Tables.Add("AAA");  
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.  
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".  

Jika Fill dipanggil dan DataSet hanya berisi satu DataTable yang namanya hanya berbeda menurut kasus, yang DataTable diperbarui. Dalam skenario ini, perbandingannya tidak peka huruf besar/kecil. Kode C# berikut mengilustrasikan perilaku ini.

DataSet dataset = new DataSet();  
dataset.Tables.Add("aaa");  
adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.  

Jika terjadi kesalahan atau pengecualian saat mengisi tabel data, baris yang ditambahkan sebelum terjadinya kesalahan tetap berada dalam tabel data. Sisa operasi dibatalkan.

Saat pernyataan SELECT yang digunakan untuk mengisi DataSet beberapa hasil, seperti pernyataan SQL batch, ketahui hal berikut:

  • Jika salah satu hasil berisi kesalahan, semua hasil berikutnya dilewati dan tidak ditambahkan ke DataSet.

Saat menggunakan panggilan berikutnya Fill untuk me-refresh DataSetkonten , dua kondisi harus dipenuhi:

  1. Pernyataan SQL harus cocok dengan yang awalnya digunakan untuk mengisi DataSet.

  2. Informasi kolom Kunci harus ada. Jika informasi kunci primer ada, setiap baris duplikat direkonsiliasi dan hanya muncul sekali dalam DataTable yang sesuai dengan DataSet. Informasi kunci primer dapat diatur baik melalui FillSchema, dengan menentukan PrimaryKey properti dari DataTable, atau dengan mengatur MissingSchemaAction properti ke AddWithKey.

Jika SelectCommand mengembalikan hasil GABUNGAN LUAR, maka DataAdapter tidak akan mengatur nilai PrimaryKey untuk menghasilkan DataTable. Anda harus secara eksplisit menentukan kunci primer untuk memastikan bahwa baris duplikat diselesaikan dengan benar. Untuk informasi selengkapnya, lihat Menentukan Kunci Utama.

Catatan

Saat menangani pernyataan SQL batch yang mengembalikan beberapa hasil, implementasi FillSchema untuk Penyedia Data .NET Framework untuk OLE DB mengambil informasi skema hanya untuk hasil pertama. Untuk mengambil informasi skema untuk beberapa hasil, gunakan Fill dengan diatur MissingSchemaAction ke AddWithKey.

Catatan Bagi Inheritor

Saat mengambil alih di kelas turunan Fill(DataSet) , pastikan untuk memanggil metode kelas Fill(DataSet) dasar.

Lihat juga

Berlaku untuk

Fill(DataSet)

Sumber:
DbDataAdapter.cs
Sumber:
DbDataAdapter.cs
Sumber:
DbDataAdapter.cs

Menambahkan atau me-refresh baris di DataSet.

public:
 override int Fill(System::Data::DataSet ^ dataSet);
public override int Fill (System.Data.DataSet dataSet);
override this.Fill : System.Data.DataSet -> int
Public Overrides Function Fill (dataSet As DataSet) As Integer

Parameter

dataSet
DataSet

DataSet untuk diisi dengan rekaman dan, jika perlu, skema.

Mengembalikan

Jumlah baris yang berhasil ditambahkan atau disegarkan di DataSet. Ini tidak termasuk baris yang dipengaruhi oleh pernyataan yang tidak mengembalikan baris.

Penerapan

Keterangan

Metode mengambil Fill data dari sumber data menggunakan pernyataan SELECT. Objek IDbConnection yang terkait dengan perintah pilih harus valid, tetapi tidak perlu dibuka. IDbConnection Jika ditutup sebelum Fill dipanggil, data dibuka untuk mengambil data lalu ditutup. Jika koneksi terbuka sebelum Fill dipanggil, koneksi tetap terbuka.

Jika terjadi kesalahan atau pengecualian saat mengisi tabel data, baris yang ditambahkan sebelum terjadinya kesalahan tetap berada dalam tabel data. Sisa operasi dibatalkan.

Jika perintah tidak mengembalikan baris apa pun, tidak ada tabel yang ditambahkan ke DataSet, dan tidak ada pengecualian yang dimunculkan.

DbDataAdapter Jika objek menemukan kolom duplikat saat mengisi DataTable, objek menghasilkan nama untuk kolom berikutnya menggunakan pola "columnname1", "columnname2", "columnname3", dan sebagainya. Jika data masuk berisi kolom yang tidak disebutkan namanya, data tersebut ditempatkan sesuai DataSet dengan pola "Column1", "Column2", dan sebagainya.

Saat kueri yang ditentukan mengembalikan beberapa hasil, tataan hasil untuk setiap baris yang mengembalikan kueri ditempatkan dalam tabel terpisah. Tataan hasil tambahan dinamai dengan menambahkan nilai integral ke nama tabel yang ditentukan (misalnya, "Tabel", "Table1", "Table2", dan sebagainya). Karena tidak ada tabel yang dibuat untuk kueri yang tidak mengembalikan baris, jika Anda memproses kueri sisipan diikuti dengan kueri pemilih, tabel yang dibuat untuk kueri pemilih diberi nama "Tabel" karena tabel tersebut adalah tabel pertama yang dibuat. Jika aplikasi Anda menggunakan nama kolom dan tabel, pastikan tidak ada konflik dengan pola penamaan ini.

Ketika pernyataan SELECT yang digunakan untuk mengisi DataSet beberapa hasil, seperti pernyataan SQL batch, jika salah satu hasil berisi kesalahan, semua hasil berikutnya dilewati dan tidak ditambahkan ke DataSet.

Saat menggunakan panggilan berikutnya Fill untuk me-refresh DataSetkonten , dua kondisi harus dipenuhi:

  1. Pernyataan SQL harus cocok dengan yang awalnya digunakan untuk mengisi DataSet.

  2. Informasi kolom Kunci harus ada.

Jika informasi kunci primer ada, setiap baris duplikat direkonsiliasi dan hanya muncul sekali dalam DataTable yang sesuai dengan DataSet. Informasi kunci primer dapat diatur baik melalui FillSchema, dengan menentukan PrimaryKey properti dari DataTable, atau dengan mengatur MissingSchemaAction properti ke AddWithKey.

Jika SelectCommand mengembalikan hasil GABUNGAN LUAR, maka DataAdapter tidak akan mengatur nilai PrimaryKey untuk menghasilkan DataTable. Anda harus secara eksplisit menentukan kunci primer untuk memastikan bahwa baris duplikat diselesaikan dengan benar. Untuk informasi selengkapnya, lihat Menentukan Kunci Utama.

Catatan

Saat menangani pernyataan SQL batch yang mengembalikan beberapa hasil, implementasi FillSchema untuk Penyedia Data .NET Framework untuk OLE DB mengambil informasi skema hanya untuk hasil pertama. Untuk mengambil informasi skema untuk beberapa hasil, gunakan Fill dengan diatur MissingSchemaAction ke AddWithKey.

Lihat juga

Berlaku untuk

Fill(DataTable, IDbCommand, CommandBehavior)

Sumber:
DbDataAdapter.cs
Sumber:
DbDataAdapter.cs
Sumber:
DbDataAdapter.cs

Menambahkan atau me-refresh baris dalam DataTable agar sesuai dengan baris di sumber data menggunakan , IDbCommand dan CommandBehavioryang ditentukanDataTable.

protected:
 virtual int Fill(System::Data::DataTable ^ dataTable, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
protected virtual int Fill (System.Data.DataTable dataTable, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
override this.Fill : System.Data.DataTable * System.Data.IDbCommand * System.Data.CommandBehavior -> int
Protected Overridable Function Fill (dataTable As DataTable, command As IDbCommand, behavior As CommandBehavior) As Integer

Parameter

dataTable
DataTable

DataTable untuk diisi dengan rekaman dan, jika perlu, skema.

command
IDbCommand

Pernyataan SQL SELECT yang digunakan untuk mengambil baris dari sumber data.

behavior
CommandBehavior

Salah CommandBehavior satu nilai.

Mengembalikan

Jumlah baris yang berhasil ditambahkan atau disegarkan di DataTable. Ini tidak termasuk baris yang dipengaruhi oleh pernyataan yang tidak mengembalikan baris.

Keterangan

Metode mengambil Fill baris dari sumber data menggunakan pernyataan SELECT yang ditentukan oleh properti terkait SelectCommand . Objek koneksi yang terkait dengan pernyataan SELECT harus valid, tetapi tidak perlu dibuka. Jika koneksi ditutup sebelum Fill dipanggil, koneksi dibuka untuk mengambil data lalu ditutup. Jika koneksi terbuka sebelum Fill dipanggil, koneksi tetap terbuka.

Fill Operasi kemudian menambahkan baris ke objek tujuan DataTable yang ditentukan di DataSet, membuat DataTable objek jika belum ada. Saat membuat DataTable objek, Fill operasi biasanya hanya membuat metadata nama kolom. Namun, jika MissingSchemaAction properti diatur ke AddWithKey, kunci dan batasan primer yang sesuai juga dibuat.

DbDataAdapter Jika objek menemukan kolom duplikat saat mengisi DataTable, objek akan menghasilkan nama untuk kolom berikutnya, menggunakan pola "columnname1", "columnname2", "columnname3", dan sebagainya. Jika data masuk berisi kolom yang tidak disebutkan namanya, data tersebut ditempatkan sesuai DataSet dengan pola "Column1", "Column2", dan sebagainya.

Kelebihan beban Fill yang mengambil DataTable sebagai parameter hanya mendapatkan hasil pertama. Gunakan kelebihan beban Fill yang mengambil DataSet sebagai parameter untuk mendapatkan beberapa hasil.

Anda dapat menggunakan Fill metode beberapa kali pada yang sama DataTable. Jika kunci primer ada, baris masuk digabungkan dengan baris yang cocok yang sudah ada. Jika tidak ada kunci primer, baris masuk ditambahkan ke DataTable.

Jika SelectCommand mengembalikan hasil GABUNGAN LUAR, maka DataAdapter tidak akan mengatur nilai PrimaryKey untuk menghasilkan DataTable. Anda harus secara eksplisit menentukan kunci primer untuk memastikan bahwa baris duplikat diselesaikan dengan benar. Untuk informasi selengkapnya, lihat Menentukan Kunci Utama.

Catatan

Saat menangani pernyataan SQL batch yang mengembalikan beberapa hasil, implementasi FillSchema untuk Penyedia Data .NET Framework untuk OLE DB mengambil informasi skema hanya untuk hasil pertama. Untuk mengambil informasi skema untuk beberapa hasil, gunakan Fill dengan diatur MissingSchemaAction ke AddWithKey.

Catatan Bagi Inheritor

Kelebihan metode Fill(DataSet) ini dilindungi dan dirancang untuk digunakan oleh penyedia data .NET Framework.

Lihat juga

Berlaku untuk