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

適用於

另請參閱