將條件約束加入至 DB2 DataSet
的 Fill
方法 MsDb2DataAdapter
只會以資料來源中的資料表資料行和資料列填滿資料集;雖然資料來源通常會設定條件約束, Fill
但方法預設不會將此架構資訊新增至資料集。 若要使用資料來源中現有的主鍵條件約束資訊填入資料集,您可以呼叫 FillSchema
的 MsDb2DataAdapter
方法,或在呼叫 Fill
之前將 的 MsDb2DataAdapter
屬性設定 MissingSchemaAction
為 AddWithKey
。 這可確保資料集中的主鍵條件約束會反映資料來源上的條件約束。 不包含外部索引鍵條件約束資訊,且必須明確建立。
將資料填入物件之前,先將架構資訊 DataSet
加入物件,可確保物件中的 DataSet
物件包含 DataTable
主鍵條件約束。 因此,進行其他填滿 DataSet
的呼叫時,主鍵資料行資訊會用來比對資料來源中的新資料列與每個 DataTable
物件中的目前資料列,而資料表中的目前資料會以資料來源中的資料覆寫。 如果沒有架構資訊,資料來源中的新資料列會附加至 DataSet
,因此會產生重複的資料列。
注意
如果資料來源中的資料行識別為自動遞增, FillSchema
則 方法或 Fill
具有 的 AddWithKey
方法 MissingSchemaAction
會建立 DataColumn
,並將 屬性設定為 AutoIncrement
true
。 不過,您必須自行設定 AutoIncrementStep
和 AutoIncrementSeed
值。
FillSchema
使用 方法或將 設定 MissingSchemaAction
為 AddWithKey
需要在資料來源進行額外處理,以判斷主鍵資料行資訊。 這些其他作業可能會降低效能。 如果您在設計階段就已知道主索引鍵資訊,建議您明確地指定主索引鍵資料行,以達到最佳效能。
MsDb2DataAdapter
如果 遇到從 SelectCommand
屬性傳回的多個結果集,它會在資料集中建立多個資料表。 資料表會以零起始的 TableN 累加預設名稱,從 Table 開始,而不是 「Table0」。 如果將資料表名稱當做引數傳遞至 FillSchema
方法,資料表會以零起始的 TableNameN 累加名稱,從 TableName 開始,而不是 「TableName0」。