DataAdapter.Fill 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
新增或重新整理 DataSet 中的資料列,使其符合資料來源中的資料列。
多載
Fill(DataSet) |
新增或重新整理 DataSet 中的資料列,使其符合資料來源中的資料列。 |
Fill(DataTable, IDataReader) |
使用 DataTable 名稱和指定的 DataTable,加入或重新整理 IDataReader 中的資料列,以符合資料來源中的資料列。 |
Fill(DataTable[], IDataReader, Int32, Int32) |
在 DataTable 物件集合中所指定的範圍內加入或重新整理資料列,以符合那些在資料來源中的資料列。 |
Fill(DataSet, String, IDataReader, Int32, Int32) |
使用 DataSet 和 DataSet 名稱,加入或重新整理 DataTable 中指定範圍內的資料列,以符合那些在資料來源中的資料列。 |
Fill(DataSet)
新增或重新整理 DataSet 中的資料列,使其符合資料來源中的資料列。
public:
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
參數
傳回
成功加入至 DataSet 或在其中重新整理的資料列數目。 這不包含被不傳回資料列之陳述式所影響的資料列。
實作
備註
方法 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 設定為 MissingSchemaActionAddWithKey
。
另請參閱
- FillSchema(DataSet, SchemaType)
- ADO.NET 概觀 \(部分機器翻譯\)
適用於
Fill(DataTable, IDataReader)
使用 DataTable 名稱和指定的 DataTable,加入或重新整理 IDataReader 中的資料列,以符合資料來源中的資料列。
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
參數
- dataReader
- IDataReader
IDataReader 的執行個體。
傳回
成功加入至 DataTable 或在其中重新整理的資料列數目。 這不包含被不傳回資料列之陳述式所影響的資料列。
備註
如需詳細資訊, DataAdapter.Fill(DataSet) 請參閱備註。
另請參閱
- ADO.NET 概觀 \(部分機器翻譯\)
適用於
Fill(DataTable[], IDataReader, Int32, Int32)
在 DataTable 物件集合中所指定的範圍內加入或重新整理資料列,以符合那些在資料來源中的資料列。
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
參數
- dataReader
- IDataReader
IDataReader 的執行個體。
- startRecord
- Int32
起始記錄之以零起始的索引。
- maxRecords
- Int32
整數,表示資料錄的最大數目。
傳回
成功加入至 DataTable 或在其中重新整理的資料列數目。 這不包含被不傳回資料列之陳述式所影響的資料列。
備註
如需詳細資訊, System.Data.Common.DataAdapter.Fill(System.Data.DataSet)
請參閱備註。
另請參閱
- ADO.NET 概觀 \(部分機器翻譯\)
適用於
Fill(DataSet, String, IDataReader, Int32, Int32)
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
參數
- srcTable
- String
字串,表示來源資料表的名稱。
- dataReader
- IDataReader
IDataReader 的執行個體。
- startRecord
- Int32
起始記錄之以零起始的索引。
- maxRecords
- Int32
整數,表示資料錄的最大數目。
傳回
成功加入至 DataSet 或在其中重新整理的資料列數目。 這不包含被不傳回資料列之陳述式所影響的資料列。
備註
如需詳細資訊, System.Data.Common.DataAdapter.Fill(System.Data.DataSet)
請參閱備註。
另請參閱
- ADO.NET 概觀 \(部分機器翻譯\)