DataAdapter.FillSchema 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
FillSchema(DataSet, SchemaType, String, IDataReader) | |
FillSchema(DataSet, SchemaType) |
將 DataTable 加入至指定的 DataSet,並且根據指定的 SchemaType 設定結構描述,以符合資料來源中的資料表。 |
FillSchema(DataTable, SchemaType, IDataReader) |
FillSchema(DataSet, SchemaType, String, IDataReader)
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 物件集合的參考。
另請參閱
- ADO.NET 概觀 \(部分機器翻譯\)
適用於
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()
參數
- schemaType
- SchemaType
其中一個 SchemaType 值。
傳回
DataTable 物件,包含從資料來源傳回的結構描述資訊。
實作
備註
方法 FillSchema 會使用 SelectCommand從數據源擷取架構。 與 SelectCommand 相關聯的連接對象必須有效,但不需要開啟。 如果在呼叫之前 FillSchema 關閉連線,則會開啟以擷取數據,然後關閉。 如果在呼叫之前 FillSchema 開啟連線,它會保持開啟狀態。
工作 FillSchema 會將 加入 DataTable 目的地 DataSet。 然後,它會將資料行新增至 DataColumnCollection 的 DataTable,並在數據源存在時設定下列 DataColumn 屬性:
AutoIncrement. 您必須分別設定 AutoIncrementStep 和 AutoIncrementSeed 。
FillSchema 也會根據下列規則來設定 PrimaryKey 和 Constraints 屬性:
如果 傳 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) - 查詢 ( 提示。
如果在填入 DataTable時遇到重複的數據行,則會使用模式 「columnname 1」、“columnname2”、“columnname3” 等,產生後續數據行的名稱。DataAdapter 如果傳入數據包含未命名的數據行,則會根據模式 「Column1」、“Column2” 等,將它們放在 DataSet 中。 將多個結果集加入至每個結果集時, DataSet 會放在個別的數據表中。 其他結果集的命名方式是將整數值附加至指定的數據表名稱 (,例如“Table”、“Table1”、“Table2” 等等) 。 使用數據行和數據表名稱的應用程式應該確保不會發生與這些命名模式衝突。
FillSchema 不會傳回任何數據列。 Fill使用 方法可將資料列加入至 DataTable。
注意
處理傳回多個結果的批次 SQL 語句時,FillSchema.NET Framework Data Provider for OLE DB 的 實作只會擷取第一個結果的架構資訊。 若要擷取多個結果的架構資訊,請使用 Fill 設定為 MissingSchemaActionAddWithKey
。
另請參閱
- Fill(DataSet)
- ADO.NET 概觀 \(部分機器翻譯\)
適用於
FillSchema(DataTable, SchemaType, IDataReader)
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 物件,包含從資料來源傳回的結構描述資訊。
另請參閱
- ADO.NET 概觀 \(部分機器翻譯\)