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 MsDb2DataAdapter
oppure 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 accodate a DataSet
, con conseguente duplicazione di 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".