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會將數據列新增至 中的DataSet目的地DataTable物件,如果物件不存在,則會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 語句時,.NET Framework 數據提供者的 Fill 實FillSchema作 只會擷取第一個結果的架構資訊。