IDataAdapter.Fill(DataSet) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
public:
int Fill(System::Data::DataSet ^ dataSet);
public int Fill(System.Data.DataSet dataSet);
abstract member Fill : System.Data.DataSet -> int
Public Function Fill (dataSet As DataSet) As Integer
參數
傳回
成功新增或刷新的 DataSet列數。 這不包含那些不回傳列的語句所影響的列。
備註
Fill 利用相關 SelectCommand 屬性指定的 SELECT 陳述式,從資料來源檢索資料列。 與 SELECT 語句相關的連接物件必須有效,但不必是開啟的。 如果連線在呼叫前 Fill 已關閉,則會開啟以取得資料,然後關閉。 如果連線在被呼叫前 Fill 已開啟,連線則保持開啟狀態。
Fill此操作接著將列加入 中的目標DataTable物件DataSet,若物件尚未存在,則建立DataTable該物件。 在建立 DataTable 物件時,操作 Fill 通常只建立欄位名稱的元資料。 然而,若 MissingSchemaAction 屬性設定為 AddWithKey,也會建立適當的主鍵與約束。
如果 傳SelectCommand回 OUTER JOIN 的結果,則 DataAdapter 不會為產生的 PrimaryKey設定DataTable值。 你必須明確定義主鍵,以確保重複列能正確解析。 如需詳細資訊,請參閱定義主索引鍵。
如果 IDataAdapter 在填充 時 DataTable遇到重複欄位,則會為後續欄位產生名稱,使用「columnname1」、「columnname2」、「columnname3」等模式。 若輸入資料包含未命名欄位,則依照「Column1」、「Column2」等模式將其放入 。DataSet 當多個結果集加入 DataSet時,每個結果集會被放入獨立的表格中。 額外的結果集則會在指定的資料表名稱後加上整數值來命名(例如「Table」、「Table1」、「Table2」等)。 應用程式在使用欄位名稱與資料表名稱時應謹慎,以避免與這些命名模式發生衝突。
當用來填充回傳的 DataSet SELECT 陳述句會顯示多個結果(例如批次 SQL 陳述式)時,如果其中一個結果有錯誤,所有後續結果都會被跳過,且不會加入 DataSet。
你可以在同一台DataTable機器上重複使用這個Fill方法。 若存在主鍵,輸入的列會與已存在的匹配列合併。 若不存在主鍵,則會將輸入的列附加在 DataTable。
備註
當處理回傳多個結果的批次 SQL 語句時,.FillSchemaNET Framework 資料提供者的實作Fill與僅取得第一個結果的結構資訊。