DataAdapter.Fill 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
新增或刷新 資料 DataSet 中的列,使其與資料來源中的列相符。
多載
| 名稱 | Description |
|---|---|
| Fill(DataSet) |
新增或刷新 資料 DataSet 中的列,使其與資料來源中的列相符。 |
| Fill(DataTable, IDataReader) |
新增或刷新 中 的 DataTable 列,以符合資料來源中的列,使用 DataTable 名稱及指定的 IDataReader。 |
| Fill(DataTable[], IDataReader, Int32, Int32) |
在物件集合 DataTable 中新增或刷新指定範圍內的列,以匹配資料來源中的列。 |
| Fill(DataSet, String, IDataReader, Int32, Int32) |
在指定範圍內 DataSet 新增或刷新資料列,以 DataSet 配合資料來源中的 and 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此操作接著將列加入 中的目標DataTable物件DataSet,若物件尚未存在,則建立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。
備註
當處理回傳多個結果的批次 SQL 語句時,.NET Framework 資料提供者用於 OLE DB 的實作 FillSchema 只會取得第一個結果的結構資訊。 要取得多個結果的結構資訊,請將 與 MissingSchemaAction 集合 一起使用Fill。AddWithKey
另請參閱
適用於
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) 。
另請參閱
適用於
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) 。
另請參閱
適用於
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) 。