DataAdapter.FillSchema 方法

定義

DataTable 加入至指定的 DataSet

多載

FillSchema(DataSet, SchemaType, String, IDataReader)

DataTable 加入至指定的 DataSet

FillSchema(DataSet, SchemaType)

DataTable 加入指定的 DataSet ,並且設定符合指定的 SchemaType為基礎的資料來源中結構描述。

FillSchema(DataTable, SchemaType, IDataReader)

DataTable 加入至指定的 DataSet

FillSchema(DataSet, SchemaType, String, IDataReader)

DataTable 加入至指定的 DataSet

protected:
 virtual cli::array <System::Data::DataTable ^> ^ FillSchema(System::Data::DataSet ^ dataSet, System::Data::SchemaType schemaType, System::String ^ srcTable, System::Data::IDataReader ^ dataReader);
protected virtual System.Data.DataTable[] FillSchema (System.Data.DataSet dataSet, System.Data.SchemaType schemaType, string srcTable, System.Data.IDataReader dataReader);
abstract member FillSchema : System.Data.DataSet * System.Data.SchemaType * string * System.Data.IDataReader -> System.Data.DataTable[]
override this.FillSchema : System.Data.DataSet * System.Data.SchemaType * string * System.Data.IDataReader -> System.Data.DataTable[]
Protected Overridable Function FillSchema (dataSet As DataSet, schemaType As SchemaType, srcTable As String, dataReader As IDataReader) As DataTable()

參數

dataSet
DataSet

要從 DataTable 中填入的 IDataReader

schemaType
SchemaType

其中一個 SchemaType 值。

srcTable
String

用於資料表對應的來源資料表名稱。

dataReader
IDataReader

IDataReader,在填入 DataTable 時用做資料來源。

傳回

DataTable[]

一個被新增至 DataSet 的物件 DataTable 之集合的參考。

另請參閱

適用於

FillSchema(DataSet, SchemaType)

DataTable 加入指定的 DataSet ,並且設定符合指定的 SchemaType為基礎的資料來源中結構描述。

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

參數

dataSet
DataSet

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

schemaType
SchemaType

其中一個 SchemaType 值。

傳回

DataTable[]

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

實作

備註

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

作業 FillSchema 會將 加入 DataTable 目的地 DataSet 。 然後,它會將資料行新增至 DataColumnCollectionDataTable ,並在資料來源存在時設定下列 DataColumn 屬性:

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

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

  • 如果沒有傳回主鍵資料行,但唯一資料行是 ,唯一的資料行會當做主鍵使用,而且只有在所有唯一資料行都不可為 Null 時。 如果任一資料行皆可為 Null, UniqueConstraint 則會將 新增至 ConstraintCollection ,但 PrimaryKey 未設定 屬性。

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

注意

基礎資料存放區可能會允許 中 DataColumn 不支援的資料行屬性,這會導致某些資料行屬性無法正確轉譯。 例如,SQL Server允許具有 Tinyint 資料類型的識別資料行,而 DataColumn 只允許 Int16、Int32 和 Int64 設定 AutoIncrement 屬性。 FillSchema 以無訊息方式忽略 DataColumn 無法正確鏡像資料來源且不會擲回例外狀況的情況。

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

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

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

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

注意

處理傳回多個結果的批次SQL語句時, FillSchema OLE DB .NET Framework Data Provider 的 實作只會擷取第一個結果的架構資訊。 若要擷取多個結果的架構資訊,請使用 Fill 設定為 MissingSchemaAction AddWithKey

另請參閱

適用於

FillSchema(DataTable, SchemaType, IDataReader)

DataTable 加入至指定的 DataSet

protected:
 virtual System::Data::DataTable ^ FillSchema(System::Data::DataTable ^ dataTable, System::Data::SchemaType schemaType, System::Data::IDataReader ^ dataReader);
protected virtual System.Data.DataTable? FillSchema (System.Data.DataTable dataTable, System.Data.SchemaType schemaType, System.Data.IDataReader dataReader);
protected virtual System.Data.DataTable FillSchema (System.Data.DataTable dataTable, System.Data.SchemaType schemaType, System.Data.IDataReader dataReader);
abstract member FillSchema : System.Data.DataTable * System.Data.SchemaType * System.Data.IDataReader -> System.Data.DataTable
override this.FillSchema : System.Data.DataTable * System.Data.SchemaType * System.Data.IDataReader -> System.Data.DataTable
Protected Overridable Function FillSchema (dataTable As DataTable, schemaType As SchemaType, dataReader As IDataReader) As DataTable

參數

dataTable
DataTable

要從 DataTable 中填入的 IDataReader

schemaType
SchemaType

其中一個 SchemaType 值。

dataReader
IDataReader

IDataReader,在填入 DataTable 時用做資料來源。

傳回

DataTable

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

另請參閱

適用於