IDataAdapter.FillSchema(DataSet, SchemaType) 方法

定義

將名稱為 "Table" 的 DataTable 加入至指定的 DataSet,並根據指定的 SchemaType,設定結構描述以符合資料來源中的資料表。

public:
 cli::array <System::Data::DataTable ^> ^ FillSchema(System::Data::DataSet ^ dataSet, System::Data::SchemaType schemaType);
public System.Data.DataTable[] FillSchema (System.Data.DataSet dataSet, System.Data.SchemaType schemaType);
abstract member FillSchema : System.Data.DataSet * System.Data.SchemaType -> System.Data.DataTable[]
Public Function FillSchema (dataSet As DataSet, schemaType As SchemaType) As DataTable()

參數

dataSet
DataSet

DataSet,以資料來源中的結構描述來填入其中。

schemaType
SchemaType

其中一個 SchemaType 值。

傳回

DataTable 物件的陣列,包含從資料來源傳回的結構描述資訊。

備註

方法 FillSchema 會使用 SelectCommand從數據源擷取架構。 與 SelectCommand 相關聯的連接對象必須有效,但不需要開啟。 如果在呼叫之前 FillSchema 關閉連線,則會開啟以擷取數據,然後關閉。 如果在呼叫之前 FillSchema 開啟連線,它會保持開啟狀態。

工作 FillSchema 會將 加入 DataTable 目的地 DataSet。 然後,它會將數據行加入 至 DataColumnCollectionDataTable ,並在數據源存在時設定下列 DataColumn 屬性:

FillSchema 也會根據下列規則來設定 PrimaryKeyConstraints 屬性:

  • 如果 傳 SelectCommand回一或多個主鍵數據行,則會當做 的主 DataTable鍵數據行使用。

  • 如果沒有傳回主鍵數據行,但唯一數據行是 ,如果所有唯一數據行都不可為 Null,則會使用唯一數據行做為主鍵。 如果任一數據行皆可為 Null, UniqueConstraint 則會將 新增至 ConstraintCollection,但 PrimaryKey 未設定 屬性。

  • 如果同時傳回主鍵數據行和唯一數據行,則主鍵數據行會做為的主 DataTable鍵數據行。

請注意,主鍵和唯一條件約束會根據先前的規則新增至 ConstraintCollection ,但不會新增其他條件約束類型。

如果在 SQL Server 數據表的數據行或數據行上定義唯一的叢集索引,而且主鍵條件約束是在一組不同的數據行上定義,則會傳回叢集索引中的數據行名稱。 若要傳回主鍵數據行的名稱或名稱,請使用查詢提示搭配 SELECT 語句來指定主鍵索引的名稱。 如需如何指定查詢提示的詳細資訊,請參閱 Transact-SQL) - 查詢 ( 提示。

IDataAdapter如果在填入 DataTable時遇到重複的數據行,則會使用模式 「columnname1」、“columnname2”、“columnname3” 等,產生後續數據行的名稱。 如果傳入資料包含未命名的資料列,則會根據模式 「Column1」、“Column2” 等來放入 DataSet 。 將多個結果集加入 至 DataSet時,每個結果集都會放在個別的數據表中。 其他結果集的命名方式是將整數值附加至指定的數據表名稱 (,例如“Table”、“Table1”、“Table2” 等等) 。 使用數據行和數據表名稱時,應用程式應該小心,以確保不會發生與這些命名模式的衝突。

FillSchema 不會傳回任何數據列。 Fill使用 方法可將資料列加入至 DataTable

適用於

另請參閱