Aggiunta di vincoli a un set di dati DB2

Il Fill metodo dell'oggetto MsDb2DataAdapter riempie un set di dati solo con colonne di tabella e righe da un'origine dati. Anche se i vincoli vengono comunemente impostati dall'origine dati, il Fill metodo non aggiunge queste informazioni sullo schema al set di dati per impostazione predefinita. Per popolare un set di dati con informazioni sul vincolo di chiave primaria esistente da un'origine dati, è possibile chiamare il FillSchema metodo di MsDb2DataAdapteroppure impostare la MissingSchemaAction proprietà di su prima AddWithKey di MsDb2DataAdapter chiamare Fill. Ciò garantisce che i vincoli di chiave primaria nel set di dati riflettano quelli presenti nell'origine dati. Le informazioni sul vincolo di chiave esterna non sono incluse e devono essere create in modo esplicito.

L'aggiunta di informazioni sullo schema a un DataSet oggetto prima di compilarla con i dati garantisce che i DataTable vincoli di chiave primaria siano inclusi negli oggetti nell'oggetto DataSet . Di conseguenza, quando vengono effettuate chiamate aggiuntive per riempire l'oggetto DataSet , le informazioni sulla colonna chiave primaria vengono usate per trovare le corrispondenze con le nuove righe dell'origine dati con le righe correnti in ogni DataTable oggetto e i dati correnti nelle tabelle vengono sovrascritti con i dati dell'origine dati. Senza le informazioni sullo schema, le nuove righe dell'origine dati vengono aggiunte a DataSet, con conseguente duplicazione delle righe.

Nota

Se una colonna in un'origine dati viene identificata come incremento automatico, il FillSchema metodo o il Fill metodo con un MissingSchemaAction di AddWithKey, crea un DataColumn oggetto con una AutoIncrement proprietà impostata su true. Tuttavia, è necessario impostare manualmente i AutoIncrementStep valori e AutoIncrementSeed .

L'utilizzo del metodo o l'impostazione FillSchema di MissingSchemaAction su AddWithKey richiede un'elaborazione aggiuntiva nell'origine dati per determinare le informazioni sulla colonna della chiave primaria. Questa ulteriore elaborazione può ridurre le prestazioni. Se le informazioni sulla chiave primaria sono note in fase di progettazione, è consigliabile specificare la colonna o le colonne della chiave primaria in modo esplicito per migliorare le prestazioni.

Se rileva MsDb2DataAdapter più set di risultati restituiti dalla SelectCommand proprietà , crea più tabelle nel set di dati. Alle tabelle viene assegnato un nome predefinito incrementale in base zero di TableN, a partire da Table anziché da "Table0". Se un nome di tabella viene passato come argomento al FillSchema metodo , alle tabelle viene assegnato un nome incrementale in base zero di TableNameN, a partire da TableName anziché da "TableName0".