將條件約束加入至 DB2 DataSet

Fill 方法 MsDb2DataAdapter 只會以資料來源中的資料表資料行和資料列填滿資料集;雖然資料來源通常會設定條件約束, Fill 但方法預設不會將此架構資訊新增至資料集。 若要使用資料來源中現有的主鍵條件約束資訊填入資料集,您可以呼叫 FillSchemaMsDb2DataAdapter 方法,或在呼叫 Fill 之前將 的 MsDb2DataAdapter 屬性設定 MissingSchemaActionAddWithKey 。 這可確保資料集中的主鍵條件約束會反映資料來源上的條件約束。 不包含外部索引鍵條件約束資訊,且必須明確建立。

將資料填入物件之前,先將架構資訊新增至 DataSet 物件,可確保物件中的 DataSet 物件包含 DataTable 主鍵條件約束。 因此,進行其他填滿 DataSet 的呼叫時,主鍵資料行資訊會用來比對資料來源中的新資料列與每個 DataTable 物件中的目前資料列,而資料表中的目前資料會以資料來源中的資料覆寫。 如果沒有架構資訊,資料來源中的新資料列會附加至 DataSet ,因此會產生重複的資料列。

注意

如果資料來源中的資料行識別為自動遞增, FillSchema 則 方法或 Fill 具有 的 AddWithKey 方法 MissingSchemaAction 會建立 DataColumn ,並將 屬性設定為 AutoIncrementtrue 。 不過,您必須自行設定 AutoIncrementStepAutoIncrementSeed 值。

FillSchema使用 方法或將 設定 MissingSchemaActionAddWithKey 需要在資料來源進行額外處理,以判斷主鍵資料行資訊。 這些其他作業可能會降低效能。 如果您在設計階段就已知道主索引鍵資訊,建議您明確地指定主索引鍵資料行,以達到最佳效能。

MsDb2DataAdapter如果 遇到從 SelectCommand 屬性傳回的多個結果集,它會在資料集中建立多個資料表。 資料表會以零起始的 TableN 累加預設名稱,從 Table 開始,而不是 「Table0」。 如果將資料表名稱當做引數傳遞至 FillSchema 方法,資料表會以零起始的 TableNameN 累加名稱,從 TableName 開始,而不是 「TableName0」。