virtual int Fill(System::Data::DataSet ^ dataSet);
public:
 abstract int Fill(System::Data::DataSet ^ dataSet);
public virtual int Fill (System.Data.DataSet dataSet);
public abstract int Fill (System.Data.DataSet dataSet);
abstract member Fill : System.Data.DataSet -> int
override this.Fill : System.Data.DataSet -> int
abstract member Fill : System.Data.DataSet -> int
Public Overridable Function Fill (dataSet As DataSet) As Integer
Public MustOverride Function Fill (dataSet As DataSet) As Integer

方法 Fill 會使用相關聯 SelectCommand 屬性所指定的 SELECT 語句,從數據源擷取數據列。 與 SELECT 語句相關聯的連接對象必須有效,但不需要開啟。 如果在呼叫之前 Fill 關閉連線,則會開啟以擷取數據,然後關閉。 如果在呼叫之前 Fill 開啟連線,它會保持開啟狀態。

然後,作業 Fill 會將數據列新增至 中的 DataSet 目的地 DataTable 物件,如果物件不存在,則會 DataTable 建立物件。 建立 DataTable 物件時, Fill 作業通常會只建立數據行名稱元數據。 不過,如果 MissingSchemaAction 屬性設定為 AddWithKey ,也會建立適當的主鍵和條件約束。

如果 SelectCommand 傳回 OUTER JOIN 的結果,則 DataAdapter 便不會為產生的 PrimaryKey 設定 DataTable 值。 您必須明確定義主鍵,以確保已正確解析重複的數據列。 如需詳細資訊,請參閱 定義主索引鍵

如果數據配接器在填入 DataTable 時遇到重複的數據行,則會使用模式 「columnname1」、“columnname2”、“columnname3” 等方式產生後續數據行的名稱。 如果傳入數據包含未命名的數據行,則會根據模式 「Column1」、“Column2” 等,將它們放在 DataSet 中。 將多個結果集加入至 DataSet 每個結果集時,會放在個別的數據表中。 將整數值附加至指定的數據表名稱 (,以命名其他結果集,例如 “Table”、“Table1”、“Table2” 等) 。 使用數據行和數據表名稱的應用程式應該確保不會發生與這些命名模式的衝突。

當用來填入 DataSet 的 SELECT 語句傳回多個結果時,例如批次 SQL 語句,如果其中一個結果包含錯誤,則會略過所有後續的結果,而不會新增至 DataSet

您可以在相同的 DataTable 上多次使用 Fill 方法。 如果主鍵存在,傳入的數據列會與已經存在的相符數據列合併。 如果沒有主鍵存在,傳入的數據列會附加至 DataTable

處理傳回多個結果的 FillSchema 批次 SQL 語句時,.NET Framework Data Provider for OLE DB 的 實作只會擷取第一個結果的架構資訊。 若要擷取多個結果的架構資訊,請使用 Fill 設定為 MissingSchemaAction AddWithKey

protected:
 virtual int Fill(System::Data::DataTable ^ dataTable, System::Data::IDataReader ^ dataReader);
protected virtual int Fill (System.Data.DataTable dataTable, System.Data.IDataReader dataReader);
abstract member Fill : System.Data.DataTable * System.Data.IDataReader -> int
override this.Fill : System.Data.DataTable * System.Data.IDataReader -> int
Protected Overridable Function Fill (dataTable As DataTable, dataReader As IDataReader) As Integer
protected:
 virtual int Fill(cli::array <System::Data::DataTable ^> ^ dataTables, System::Data::IDataReader ^ dataReader, int startRecord, int maxRecords);
protected virtual int Fill (System.Data.DataTable[] dataTables, System.Data.IDataReader dataReader, int startRecord, int maxRecords);
abstract member Fill : System.Data.DataTable[] * System.Data.IDataReader * int * int -> int
override this.Fill : System.Data.DataTable[] * System.Data.IDataReader * int * int -> int
Protected Overridable Function Fill (dataTables As DataTable(), dataReader As IDataReader, startRecord As Integer, maxRecords As Integer) As Integer
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);
abstract member Fill : System.Data.DataSet * string * System.Data.IDataReader * int * int -> int
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
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱: https://aka.ms/ContentUserFeedback

提交並檢視相關的意見反應