DataRelation Class

Definition

Představuje vztah nadřazený-podřízený mezi dvěma objekty DataTable.Represents a parent/child relationship between two DataTable objects.

public ref class DataRelation
[System.ComponentModel.TypeConverter(typeof(System.Data.RelationshipConverter))]
public class DataRelation
public class DataRelation
[System.ComponentModel.TypeConverter(typeof(System.Data.RelationshipConverter))]
[System.Serializable]
public class DataRelation
type DataRelation = class
Public Class DataRelation
Inheritance
DataRelation
Attributes

Examples

Následující příklad vytvoří novou DataRelation a přidá ji do DataRelationCollection DataSet.The following example creates a new DataRelation and adds it to the DataRelationCollection of a DataSet.

private void CreateRelation()
{
    // Get the DataColumn objects from two DataTable objects
    // in a DataSet. Code to get the DataSet not shown here.
    DataColumn parentColumn =
        DataSet1.Tables["Customers"].Columns["CustID"];
    DataColumn childColumn =
        DataSet1.Tables["Orders"].Columns["CustID"];
    // Create DataRelation.
    DataRelation relCustOrder;
    relCustOrder = new DataRelation("CustomersOrders",
        parentColumn, childColumn);
    // Add the relation to the DataSet.
    DataSet1.Relations.Add(relCustOrder);
}
Private Sub CreateRelation()
    ' Get the DataColumn objects from two DataTable objects 
    ' in a DataSet. Code to get the DataSet not shown here.
    Dim parentColumn As DataColumn = _
        DataSet1.Tables("Customers").Columns("CustID")
    Dim childColumn As DataColumn = DataSet1.Tables( _
        "Orders").Columns("CustID")

    ' Create DataRelation.
    Dim relCustOrder As DataRelation
    relCustOrder = New DataRelation( _
        "CustomersOrders", parentColumn, childColumn)

    ' Add the relation to the DataSet.
    DataSet1.Relations.Add(relCustOrder)
End Sub

Remarks

DataRelation slouží k vzájemnému propojení dvou objektů DataTable skrze objekty DataColumn.A DataRelation is used to relate two DataTable objects to each other through DataColumn objects. Například ve vztahu Customer/Orders je tabulka Customers nadřazená a tabulka Orders je podřízenosti vztahu.For example, in a Customer/Orders relationship, the Customers table is the parent and the Orders table is the child of the relationship. Vypadá to podobně jako u vztahu primárního klíče nebo cizího klíče.This is similar to a primary key/foreign key relationship. Další informace najdete v tématu navigace mezi DataRelations.For more information, see Navigating DataRelations.

Vytvoří se relace mezi sloupci v nadřazené a podřízené tabulce.Relationships are created between matching columns in the parent and child tables. To znamená, že hodnota DataType pro oba sloupce musí být shodná.That is, the DataType value for both columns must be identical.

Relace mohou také zařadit různé změny z nadřízeného DataRow do jejích podřízených řádků.Relationships can also cascade various changes from the parent DataRow to its child rows. Chcete-li určit, jak se hodnoty mění v podřízených řádcích, přidejte ForeignKeyConstraint do ConstraintCollection objektu DataTable.To control how values are changed in child rows, add a ForeignKeyConstraint to the ConstraintCollection of the DataTable object. ConstraintCollection určuje, jaká akce má být provedena, když je odstraněna nebo aktualizována hodnota v nadřazené tabulce.The ConstraintCollection determines what action to take when a value in a parent table is deleted or updated.

Při vytvoření DataRelation nejprve ověří, zda je možné vytvořit relaci.When a DataRelation is created, it first verifies that the relationship can be established. Po přidání do DataRelationCollectionse vztah zachová tak, že se nepovolí žádné změny, které by ho neověřil.After it is added to the DataRelationCollection, the relationship is maintained by disallowing any changes that would invalidate it. Mezi obdobím, kdy se vytvoří DataRelation a přidá do DataRelationCollection, je možné provést další změny v nadřazených nebo podřízených řádcích.Between the period when a DataRelation is created and added to the DataRelationCollection, it is possible for additional changes to be made to the parent or child rows. Výjimka je vygenerována, pokud to způsobí, že relace již není platná.An exception is generated if this causes a relationship that is no longer valid.

Note

Poškození dat může nastat, pokud je mezi dvěma tabulkami definován obousměrný vztah.Data corruption can occur if a bi-directional relation is defined between two tables. Obousměrný vztah se skládá ze dvou DataRelation objektů, které používají stejné sloupce a role typu nadřazený-podřízený byly přepnuty.A bi-directional relation consists of two DataRelation objects that use the same columns, with the parent-child roles switched. Při ukládání DataRelation objektů není vyvolána žádná výjimka; může ale dojít k poškození dat.No exception is raised when the DataRelation objects are saved; however, data corruption can occur.

objekty DataRelation jsou obsaženy v DataRelationCollection, ke kterým můžete přistupovat prostřednictvím vlastnosti Relations DataSeta ChildRelations a ParentRelations vlastností DataTable.DataRelation objects are contained in a DataRelationCollection, which you can access through the Relations property of the DataSet, and the ChildRelations and ParentRelations properties of the DataTable.

Constructors

DataRelation(String, DataColumn, DataColumn)

Inicializuje novou instanci třídy DataRelation pomocí zadaného DataRelation názvu a nadřazených a podřízených objektů DataColumn.Initializes a new instance of the DataRelation class using the specified DataRelation name, and parent and child DataColumn objects.

DataRelation(String, DataColumn, DataColumn, Boolean)

Inicializuje novou instanci třídy DataRelation pomocí zadaného názvu, nadřazených a podřízených objektů DataColumn a hodnotu, která označuje, jestli se mají vytvořit omezení.Initializes a new instance of the DataRelation class using the specified name, parent and child DataColumn objects, and a value that indicates whether to create constraints.

DataRelation(String, DataColumn[], DataColumn[])

Inicializuje novou instanci třídy DataRelation pomocí zadaného DataRelation názvu a odpovídajících polí nadřazených a podřízených objektů DataColumn.Initializes a new instance of the DataRelation class using the specified DataRelation name and matched arrays of parent and child DataColumn objects.

DataRelation(String, DataColumn[], DataColumn[], Boolean)

Inicializuje novou instanci třídy DataRelation pomocí zadaného názvu, odpovídajících polí nadřazených a podřízených DataColumn objektů a hodnoty, která označuje, zda se mají vytvořit omezení.Initializes a new instance of the DataRelation class using the specified name, matched arrays of parent and child DataColumn objects, and value that indicates whether to create constraints.

DataRelation(String, String, String, String, String, String[], String[], Boolean)

Tento konstruktor je poskytován pro podporu pro dobu návrhu v prostředí sady Visual Studio.This constructor is provided for design time support in the Visual Studio environment.

DataRelation(String, String, String, String[], String[], Boolean)

Tento konstruktor je poskytován pro podporu pro dobu návrhu v prostředí sady Visual Studio.This constructor is provided for design time support in the Visual Studio environment.

Properties

ChildColumns

Získá podřízené objekty DataColumn této relace.Gets the child DataColumn objects of this relation.

ChildKeyConstraint

Získá ForeignKeyConstraint pro relaci.Gets the ForeignKeyConstraint for the relation.

ChildTable

Získá podřízenou tabulku této relace.Gets the child table of this relation.

DataSet

Získá DataSet, ke kterému DataRelation patří.Gets the DataSet to which the DataRelation belongs.

ExtendedProperties

Získá kolekci, která ukládá přizpůsobené vlastnosti.Gets the collection that stores customized properties.

Nested

Získává nebo nastavuje hodnotu, která indikuje, jestli DataRelation objekty vnořené.Gets or sets a value that indicates whether DataRelation objects are nested.

ParentColumns

Získá pole objektů DataColumn, které jsou nadřazenými sloupci této DataRelation.Gets an array of DataColumn objects that are the parent columns of this DataRelation.

ParentKeyConstraint

Získá UniqueConstraint, který zaručuje, že hodnoty v nadřazeném sloupci DataRelation jsou jedinečné.Gets the UniqueConstraint that guarantees that values in the parent column of a DataRelation are unique.

ParentTable

Získá nadřazený DataTable tohoto DataRelation.Gets the parent DataTable of this DataRelation.

RelationName

Získá nebo nastaví název, který se použije k načtení DataRelation z DataRelationCollection.Gets or sets the name used to retrieve a DataRelation from the DataRelationCollection.

Methods

CheckStateForProperty()

Tato metoda podporuje infrastrukturu .NET Framework a není určena pro použití přímo v kódu.This method supports the .NET Framework infrastructure and is not intended to be used directly from your code.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode()

Slouží jako výchozí funkce hash.Serves as the default hash function.

(Inherited from Object)
GetType()

Získá Type aktuální instance.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone()

Vytvoří kopii aktuálního Objectbez podstruktury.Creates a shallow copy of the current Object.

(Inherited from Object)
OnPropertyChanging(PropertyChangedEventArgs)

Tento člen podporuje infrastrukturu rozhraní .NET Framework a není určen k použití přímo z uživatelského kódu.This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.

RaisePropertyChanging(String)

Tento člen podporuje infrastrukturu rozhraní .NET Framework a není určen k použití přímo z uživatelského kódu.This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.

ToString()

Získá RelationName, pokud jedna existuje.Gets the RelationName, if one exists.

Applies to

Thread Safety

Tento typ je bezpečný pro operace čtení ve více vláknech.This type is safe for multithreaded read operations. Je nutné synchronizovat všechny operace zápisu.You must synchronize any write operations.

See also