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
。
提交並檢視相關的意見反應