Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Classe ConstraintCollection

Rappresenta un insieme di vincoli per un oggetto DataTable.

Spazio dei nomi:  System.Data
Assembly:  System.Data (in System.Data.dll)

public sealed class ConstraintCollection : InternalDataCollectionBase

Il tipo ConstraintCollection espone i seguenti membri.

  NomeDescrizione
Proprietà pubblicaSupportato da XNA FrameworkCountOttiene il numero totale di elementi in un insieme. (Ereditato da InternalDataCollectionBase)
Proprietà pubblicaSupportato da XNA FrameworkIsReadOnlyOttiene un valore che indica se InternalDataCollectionBase è in sola lettura. (Ereditato da InternalDataCollectionBase)
Proprietà pubblicaSupportato da XNA FrameworkIsSynchronizedOttiene un valore che indica se la classe InternalDataCollectionBase è sincronizzata. (Ereditato da InternalDataCollectionBase)
Proprietà pubblicaSupportato da XNA FrameworkItem[Int32]Ottiene dall'insieme la classe Constraint in corrispondenza dell'indice specificato.
Proprietà pubblicaSupportato da XNA FrameworkItem[String]Ottiene la classe Constraint dall'insieme con il nome specificato.
Proprietà pubblicaSupportato da XNA FrameworkSyncRootOttiene un oggetto che può essere utilizzato per sincronizzare l'insieme. (Ereditato da InternalDataCollectionBase)
In alto

  NomeDescrizione
Metodo pubblicoSupportato da XNA FrameworkAdd(Constraint)Aggiunge all'insieme l'oggetto Constraint specificato.
Metodo pubblicoSupportato da XNA FrameworkAdd(String, DataColumn, Boolean)Costruisce una nuova classe UniqueConstraint con il nome specificato, la classe DataColumn e un valore che indica se la colonna è una chiave primaria, eseguendone l'aggiunta all'insieme.
Metodo pubblicoSupportato da XNA FrameworkAdd(String, DataColumn, DataColumn)Crea un nuovo oggetto ForeignKeyConstraint con il nome specificato, la colonna padre e la colonna figlio e aggiunge il vincolo all'insieme.
Metodo pubblicoSupportato da XNA FrameworkAdd(String, DataColumn[], Boolean)Costruisce una nuova classe UniqueConstraint con nome, matrice di oggetti DataColumn e valore specificati, che indica se la colonna è una chiave primaria, e ne esegue l'aggiunta all'insieme.
Metodo pubblicoSupportato da XNA FrameworkAdd(String, DataColumn[], DataColumn[])Crea un nuovo oggetto ForeignKeyConstraint con le matrici specificate di colonne padre e colonne figlio e aggiunge il vincolo all'insieme.
Metodo pubblicoSupportato da XNA FrameworkAddRangeCopia gli elementi della matrice ConstraintCollection specificata alla fine dell'insieme.
Metodo pubblicoSupportato da XNA FrameworkCanRemoveIndica se è possibile rimuovere un oggetto Constraint.
Metodo pubblicoSupportato da XNA FrameworkClearCancella dall'insieme qualunque oggetto Constraint.
Metodo pubblicoSupportato da XNA FrameworkContainsIndica se l'oggetto Constraint specificato in base al nome è presente nell'insieme.
Metodo pubblicoSupportato da XNA FrameworkCopyTo(Array, Int32)Copia tutti gli elementi dell'insieme InternalDataCollectionBase corrente in un oggetto Array unidimensionale, partendo dall'indice di InternalDataCollectionBase specificato. (Ereditato da InternalDataCollectionBase)
Metodo pubblicoSupportato da XNA FrameworkCopyTo(Constraint[], Int32)Copia gli oggetti dell'insieme in un'istanza della classe Array unidimensionale, a partire dall'indice specificato.
Metodo pubblicoSupportato da XNA FrameworkEquals(Object) Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object)
Metodo pubblicoSupportato da XNA FrameworkGetEnumeratorOttiene un oggetto IEnumerator per l'insieme. (Ereditato da InternalDataCollectionBase)
Metodo pubblicoSupportato da XNA FrameworkGetHashCode Funge da funzione hash per un particolare tipo. (Ereditato da Object)
Metodo pubblicoSupportato da XNA FrameworkGetType Ottiene il Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblicoSupportato da XNA FrameworkIndexOf(Constraint)Ottiene l'indice della classe Constraint specificata.
Metodo pubblicoSupportato da XNA FrameworkIndexOf(String)Ottiene l'indice della classe Constraint specificata in base al nome.
Metodo pubblicoSupportato da XNA FrameworkRemove(Constraint)Rimuove la classe Constraint specificata dall'insieme.
Metodo pubblicoSupportato da XNA FrameworkRemove(String)Rimuove dall'insieme l'oggetto Constraint specificato in base al nome.
Metodo pubblicoSupportato da XNA FrameworkRemoveAtRimuove l'oggetto Constraint dall'insieme in corrispondenza dell'indice specificato.
Metodo pubblicoSupportato da XNA FrameworkToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)
In alto

  NomeDescrizione
Evento pubblicoSupportato da XNA FrameworkCollectionChangedViene generato ogni volta che la classe ConstraintCollection viene modificata in seguito all'aggiunta o alla rimozione di oggetti Constraint.
In alto

È possibile accedere alla classe ConstraintCollection mediante la proprietà DataTable.Constraints.

Nell'insieme ConstraintCollection possono essere presenti oggetti UniqueConstraint e ForeignKeyConstraint per l'oggetto DataTable. Un oggetto UniqueConstraint garantisce che i dati in una specifica colonna siano sempre univoci al fine di conservare l'integrità dei dati. L'oggetto ForeignKeyConstraint determina quali operazioni verranno eseguite nelle tabelle correlate durante l'aggiornamento o l'eliminazione di dati nell'oggetto DataTable. Se ad esempio viene eliminata una riga, ForeignKeyConstraint determinerà se verranno eliminate anche le righe correlate (a catena) o se verrà eseguita un'altra operazione.

NotaNota

Quando si aggiunge una classe DataRelation che crea una relazione tra due tabelle a una classe DataSet, vengono create automaticamente una classe ForeignKeyConstraint e una classe UniqueConstraint. UniqueConstraint viene applicato alla colonna di chiave primaria dell'oggetto DataTable padre, mentre il vincolo viene aggiunto all'insieme ConstraintCollection di tale tabella. ForeignKeyConstraint viene applicato alla colonna di chiave primaria e alla colonna di chiave esterna, mentre il vincolo viene aggiunto all'insieme ConstraintCollection della tabella figlio.

L'insieme ConstraintCollection utilizza metodi standard di insiemi, quali Add, Clear e Remove. È inoltre possibile utilizzare il metodo Contains per verificare l'esistenza di un particolare vincolo nell'insieme.

Un vincolo UniqueConstraint viene creato quando viene aggiunto un oggetto DataColumn con la proprietà Unique impostata su true all'insieme DataColumnCollection di un oggetto DataTable.

Un vincolo ForeignKeyConstraint viene creato quando viene aggiunto un oggetto DataRelation all'insieme DataRelationCollection di un oggetto DataSet.

Nel primo esempio viene creato un oggetto DataTable e viene aggiunto un oggetto DataColumn (con la proprietà Unique impostata su true) all'insieme DataColumnCollection. Nel secondo esempio vengono creati un oggetto DataSet, due oggetti DataTable, quattro colonne e un oggetto DataRelation. Il numero di vincoli viene quindi stampato per dimostrare che vengono creati un vincolo ForeignKeyConstraint e un vincolo UniqueConstraint nel momento in cui viene aggiunto un oggetto DataRelation al costruttore DataRelationCollection dell'oggetto DataSet.


private void MakeTableWithUniqueConstraint()
{
    DataTable table = new DataTable("table");
    DataColumn column = new DataColumn("UniqueColumn");
    column.Unique=true;
    table.Columns.Add(column);

    // Print count, name, and type.
    Console.WriteLine("Constraints.Count " 
        + table.Constraints.Count);
    Console.WriteLine(table.Constraints[0].ConstraintName);
    Console.WriteLine(table.Constraints[0].GetType() );

    // Add a second unique column.
    column = new DataColumn("UniqueColumn2");
    column.Unique=true;
    table.Columns.Add(column);

    // Print info again.
    Console.WriteLine("Constraints.Count " 
        + table.Constraints.Count);
    Console.WriteLine(table.Constraints[1].ConstraintName);
    Console.WriteLine(table.Constraints[1].GetType() );
}

private void MakeTableWithForeignConstraint()
{
    // Create a DataSet.
    DataSet dataSet = new DataSet("dataSet");

    // Make two tables.
    DataTable customersTable= new DataTable("Customers");
    DataTable ordersTable = new DataTable("Orders");

    // Create four columns, two for each table.
    DataColumn name = new DataColumn("Name");
    DataColumn id = new DataColumn("ID");
    DataColumn orderId = new DataColumn("OrderID");
    DataColumn cDate = new DataColumn("OrderDate");

    // Add columns to tables.
    customersTable.Columns.Add(name);
    customersTable.Columns.Add(id);
    ordersTable.Columns.Add(orderId);
    ordersTable.Columns.Add(cDate);

    // Add tables to the DataSet.
    dataSet.Tables.Add(customersTable);
    dataSet.Tables.Add(ordersTable); 

    // Create a DataRelation for two of the columns.
    DataRelation myRelation = new 
        DataRelation("CustomersOrders",id,orderId,true);
    dataSet.Relations.Add(myRelation);

    // Print TableName, Constraints.Count, 
    // ConstraintName and Type.
    foreach(DataTable t in dataSet.Tables)
    {
        Console.WriteLine(t.TableName);
        Console.WriteLine("Constraints.Count " 
            + t.Constraints.Count);
        Console.WriteLine("ParentRelations.Count " 
            + t.ParentRelations.Count);
        Console.WriteLine("ChildRelations.Count " 
            + t.ChildRelations.Count);
        foreach(Constraint cstrnt in t.Constraints)
        {
            Console.WriteLine(cstrnt.ConstraintName);
            Console.WriteLine(cstrnt.GetType());
        }
    }
}


.NET Framework

Supportato in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Questo tipo può essere utilizzato nelle operazioni di lettura con multithreading. È necessario sincronizzare tutte le operazioni di scrittura.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft