Représente une table de données en mémoire.
System.ComponentModel.MarshalByValueComponent
System.Data.DataTable
System.Data.TypedTableBase<T>
Espace de noms : System.Data
Assembly : System.Data (dans System.Data.dll)
<SerializableAttribute> _ Public Class DataTable _ Inherits MarshalByValueComponent _ Implements IListSource, ISupportInitializeNotification, ISupportInitialize, ISerializable, _ IXmlSerializable
[SerializableAttribute] public class DataTable : MarshalByValueComponent, IListSource, ISupportInitializeNotification, ISupportInitialize, ISerializable, IXmlSerializable
[SerializableAttribute] public ref class DataTable : public MarshalByValueComponent, IListSource, ISupportInitializeNotification, ISupportInitialize, ISerializable, IXmlSerializable
[<SerializableAttribute>] type DataTable = class inherit MarshalByValueComponent interface IListSource interface ISupportInitializeNotification interface ISupportInitialize interface ISerializable interface IXmlSerializable end
Le type DataTable expose les membres suivants.
| Nom | Description | |
|---|---|---|
|
DataTable() | Initialise une nouvelle instance de la classe DataTable sans argument. |
|
DataTable(String) | Initialise une nouvelle instance de la classe DataTable avec le nom de table spécifié. |
|
DataTable(SerializationInfo, StreamingContext) | Initialise une nouvelle instance de la classe DataTable avec SerializationInfo et StreamingContext. |
|
DataTable(String, String) | Initialise une nouvelle instance de la classe DataTable avec le nom de table et l'espace de noms spécifiés. |
| Nom | Description | |
|---|---|---|
|
CaseSensitive | Indique si les comparaisons de chaînes au sein de la table respectent la casse. |
|
ChildRelations | Obtient la collection des relations enfants de ce DataTable. |
|
Columns | Obtient la collection des colonnes qui appartiennent à cette table. |
|
Constraints | Obtient la collection de contraintes gérée par cette table. |
|
Container | Obtient le conteneur du composant. (Hérité de MarshalByValueComponent.) |
|
DataSet | Obtient le DataSet auquel cette table appartient. |
|
DefaultView | Obtient une vue personnalisée de la table qui peut comprendre une vue filtrée ou une position de curseur. |
|
DesignMode | Obtient une valeur indiquant si le composant est actuellement en mode design. (Hérité de MarshalByValueComponent.) |
|
DisplayExpression | Obtient ou définit l'expression qui retourne une valeur utilisée pour représenter cette table dans l'interface utilisateur. La propriété DisplayExpression vous permet d'afficher le nom de cette table dans une interface utilisateur. |
|
Events | Obtient la liste des gestionnaires d'événements attachés à ce composant. (Hérité de MarshalByValueComponent.) |
|
ExtendedProperties | Obtient la collection d'informations utilisateur personnalisées. |
|
HasErrors | Obtient une valeur indiquant s'il existe des erreurs dans une des lignes d'une table du DataSet auquel appartient la table. |
|
IsInitialized | Obtient une valeur qui indique si DataTable est initialisé. |
|
Locale | Obtient ou définit les paramètres régionaux utilisés pour comparer des chaînes dans la table. |
|
MinimumCapacity | Obtient ou définit la taille de départ initiale pour cette table. |
|
Namespace | Obtient ou définit l'espace de noms de la représentation XML des données stockées dans le DataTable. |
|
ParentRelations | Obtient la collection des relations parentes de ce DataTable. |
|
Prefix | Obtient ou définit l'espace de noms de la représentation XML des données stockées dans le DataTable. |
|
PrimaryKey | Obtient ou définit un tableau de colonnes qui fonctionnent comme des clés primaires pour la table de données. |
|
RemotingFormat | Obtient ou définit le format de sérialisation. |
|
Rows | Obtient la collection des lignes qui appartiennent à cette table. |
|
Site | Obtient ou définit un System.ComponentModel.ISite pour DataTable. (Substitue MarshalByValueComponent.Site.) |
|
TableName | Obtient ou définit le nom de DataTable. |
| Nom | Description | |
|---|---|---|
|
AcceptChanges | Valide toutes les modifications apportées à cette table depuis le dernier appel à AcceptChanges. |
|
BeginInit | Commence l'initialisation d'un DataTable qui est utilisé dans un formulaire ou par un autre composant. L'initialisation se produit au moment de l'exécution. |
|
BeginLoadData | Désactive les notifications, la gestion d'index et les contraintes lors du chargement de données. |
|
Clear | Efface toutes les données de DataTable. |
|
Clone | Clone la structure de DataTable, y compris tous les schémas et contraintes DataTable. |
|
Compute | Calcule l'expression donnée sur les lignes en cours qui passent les critères du filtre. |
|
Copy | Copie à la fois la structure et les données de ce DataTable. |
|
CreateDataReader | Retourne un DataTableReader correspondant aux données dans ce DataTable. |
|
CreateInstance | Infrastructure. Crée une nouvelle instance de DataTable. |
|
Dispose() | Libère toutes les ressources utilisées par MarshalByValueComponent. (Hérité de MarshalByValueComponent.) |
|
Dispose(Boolean) | Libère les ressources non managées utilisées par MarshalByValueComponent et libère éventuellement les ressources managées. (Hérité de MarshalByValueComponent.) |
|
EndInit | Met fin à l'initialisation d'un DataTable qui est utilisé dans un formulaire ou par un autre composant. L'initialisation se produit au moment de l'exécution. |
|
EndLoadData | Active les notifications, la gestion d'index et les contraintes après le chargement de données. |
|
Equals(Object) | Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.) |
|
Finalize | Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de netto***ge avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de MarshalByValueComponent.) |
|
GetChanges() | Obtient une copie du DataTable qui contient l'ensemble des modifications qui lui ont été apportées depuis son chargement ou depuis le dernier appel à AcceptChanges. |
|
GetChanges(DataRowState) | Obtient une copie du DataTable contenant l'ensemble des modifications qui lui ont été apportées depuis son dernier chargement ou depuis l'appel à AcceptChanges, filtrée par DataRowState. |
|
GetDataTableSchema | Cette méthode retourne une instance de XmlSchemaSet contenant WSDL (Web Services Description Language), lequel décrit DataTable pour les services Web. |
|
GetErrors | Obtient un tableau d'objets DataRow qui contiennent des erreurs. |
|
GetHashCode | Sert de fonction de hachage pour un type particulier. (Hérité de Object.) |
|
GetObjectData | Remplit un objet d'informations de sérialisation avec les données nécessaires pour sérialiser DataTable. |
|
GetRowType | Infrastructure. Obtient le type de ligne. |
|
GetSchema | Infrastructure. Pour obtenir une description de ce membre, consultez IXmlSerializable.GetSchema. |
|
GetService | Obtient l'implémenteur du IServiceProvider. (Hérité de MarshalByValueComponent.) |
|
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) |
|
ImportRow | Copie DataRow dans un DataTable en préservant tous les paramètres de propriété, ainsi que les valeurs d'origine et actuelles. |
|
Load(IDataReader) | Remplit un DataTable avec des valeurs issues d'une source de données à l'aide du IDataReader fourni. Si DataTable contient déjà des lignes, les données entrantes à partir de la source de données sont fusionnées avec les lignes existantes. |
|
Load(IDataReader, LoadOption) | Remplit un DataTable avec des valeurs issues d'une source de données à l'aide du IDataReader fourni. Si DataTable contient déjà des lignes, les données entrantes à partir de la source de données sont fusionnées avec les lignes existantes en fonction de la valeur du paramètre loadOption. |
|
Load(IDataReader, LoadOption, FillErrorEventHandler) | Remplit un DataTable avec des valeurs issues d'une source de données à l'aide du IDataReader fourni et d'un délégué de gestion d'erreur. |
|
LoadDataRow(Object[], Boolean) | Recherche et met à jour une ligne spécifique. Si aucune ligne correspondante n'est détectée, une nouvelle ligne est créée à l'aide des valeurs données. |
|
LoadDataRow(Object[], LoadOption) | Recherche et met à jour une ligne spécifique. Si aucune ligne correspondante n'est détectée, une nouvelle ligne est créée à l'aide des valeurs données. |
|
MemberwiseClone | Crée une copie superficielle de l'objet Object actif. (Hérité de Object.) |
|
Merge(DataTable) | Fusionnez le DataTable spécifié avec le DataTable actuel. |
|
Merge(DataTable, Boolean) | Fusionnez le DataTable spécifié avec le DataTable actuel, en indiquant s'il faut conserver les modifications dans le DataTable actuel. |
|
Merge(DataTable, Boolean, MissingSchemaAction) | Fusionnez le DataTable spécifié avec le DataTable actuel, en indiquant s'il faut conserver les modifications et comment gérer le schéma manquant dans le DataTable actuel. |
|
NewRow | Crée un nouveau DataRow possédant le même schéma que la table. |
|
NewRowArray | Infrastructure. Retourne un tableau de DataRow. |
|
NewRowFromBuilder | Crée une nouvelle ligne à partir d'une ligne existante. |
|
OnColumnChanged | Déclenche l'événement ColumnChanged. |
|
OnColumnChanging | Déclenche l'événement ColumnChanging. |
|
OnPropertyChanging | Déclenche l'événement PropertyChanged. |
|
OnRemoveColumn | Avertit DataTable que DataColumn est en cours de suppression. |
|
OnRowChanged | Déclenche l'événement RowChanged. |
|
OnRowChanging | Déclenche l'événement RowChanging. |
|
OnRowDeleted | Déclenche l'événement RowDeleted. |
|
OnRowDeleting | Déclenche l'événement RowDeleting. |
|
OnTableCleared | Déclenche l'événement TableCleared. |
|
OnTableClearing | Déclenche l'événement TableClearing. |
|
OnTableNewRow | Déclenche l'événement TableNewRow. |
|
ReadXml(Stream) | Lit le schéma et les données XML dans le DataTable à l'aide du Stream spécifié. |
|
ReadXml(String) | Lit le schéma et les données XML dans le DataTable à partir du fichier spécifié. |
|
ReadXml(TextReader) | Lit le schéma et les données XML dans le DataTable à l'aide du TextReader spécifié. |
|
ReadXml(XmlReader) | Lit le schéma et les données XML dans le DataTable à l'aide du XmlReader spécifié. |
|
ReadXmlSchema(Stream) | Lit un schéma XML dans le DataTable à l'aide du flux de données spécifié. |
|
ReadXmlSchema(String) | Lit un schéma XML dans le DataTable à partir du fichier spécifié. |
|
ReadXmlSchema(TextReader) | Lit un schéma XML dans le DataTable à l'aide du TextReader spécifié. |
|
ReadXmlSchema(XmlReader) | Lit un schéma XML dans le DataTable à l'aide du XmlReader spécifié. |
|
ReadXmlSerializable | Infrastructure. Lectures d'un flux de données XML. |
|
RejectChanges | Restaure toutes les modifications apportées à la table depuis son chargement ou le dernier appel à AcceptChanges. |
|
Reset | Rétablit l'état d'origine de DataTable. |
|
Select() | Obtient un tableau de tous les objets DataRow. |
|
Select(String) | Obtient un tableau de tous les objets DataRow qui correspondent aux critères de filtre. |
|
Select(String, String) | Obtient un tableau de tous les objets DataRow qui correspondent aux critères de filtre, dans l'ordre de tri spécifié. |
|
Select(String, String, DataViewRowState) | Obtient un tableau de tous les objets DataRow qui correspondent au filtre et à l'état spécifié, dans l'ordre de tri. |
|
ToString | Obtient le TableName et le DisplayExpression éventuels sous la forme d'une chaîne concaténée. (Substitue MarshalByValueComponent.ToString().) |
|
WriteXml(Stream) | Écrit le contenu actuel du DataTable au format XML à l'aide du Stream spécifié. |
|
WriteXml(String) | Écrit le contenu actuel du DataTable au format XML à l'aide du fichier spécifié. |
|
WriteXml(TextWriter) | Écrit le contenu actuel du DataTable au format XML à l'aide du TextWriter spécifié. |
|
WriteXml(XmlWriter) | Écrit le contenu actuel du DataTable au format XML à l'aide du XmlWriter spécifié. |
|
WriteXml(Stream, Boolean) | Écrit le contenu actuel du DataTable au format XML à l'aide du Stream spécifié. Pour enregistrer les données pour la table et tous ses descendants, affectez au paramètre writeHierarchy la valeur true. |
|
WriteXml(Stream, XmlWriteMode) | Écrit les données en cours, et éventuellement le schéma, de DataTable dans le fichier spécifié à l'aide du XmlWriteMode spécifié. Pour écrire le schéma, affectez WriteSchema comme valeur du paramètre mode. |
|
WriteXml(String, Boolean) | Écrit le contenu actuel du DataTable au format XML à l'aide du fichier spécifié. Pour enregistrer les données pour la table et tous ses descendants, affectez au paramètre writeHierarchy la valeur true. |
|
WriteXml(String, XmlWriteMode) | Écrit les données en cours, et éventuellement le schéma, de DataTable à l'aide du fichier et XmlWriteMode spécifiés. Pour écrire le schéma, affectez WriteSchema comme valeur du paramètre mode. |
|
WriteXml(TextWriter, Boolean) | Écrit le contenu actuel du DataTable au format XML à l'aide du TextWriter spécifié. Pour enregistrer les données pour la table et tous ses descendants, affectez au paramètre writeHierarchy la valeur true. |
|
WriteXml(TextWriter, XmlWriteMode) | Écrit les données en cours, et éventuellement le schéma, de DataTable à l'aide des TextWriter et XmlWriteMode spécifiés. Pour écrire le schéma, affectez WriteSchema comme valeur du paramètre mode. |
|
WriteXml(XmlWriter, Boolean) | Écrit le contenu actuel du DataTable au format XML à l'aide du XmlWriter spécifié. |
|
WriteXml(XmlWriter, XmlWriteMode) | Écrit les données en cours, et éventuellement le schéma, de DataTable à l'aide des XmlWriter et XmlWriteMode spécifiés. Pour écrire le schéma, affectez WriteSchema comme valeur du paramètre mode. |
|
WriteXml(Stream, XmlWriteMode, Boolean) | Écrit les données en cours, et éventuellement le schéma, de DataTable dans le fichier spécifié à l'aide du XmlWriteMode spécifié. Pour écrire le schéma, affectez WriteSchema comme valeur du paramètre mode. Pour enregistrer les données pour la table et tous ses descendants, affectez au paramètre writeHierarchy la valeur true. |
|
WriteXml(String, XmlWriteMode, Boolean) | Écrit les données en cours, et éventuellement le schéma, de DataTable à l'aide du fichier et XmlWriteMode spécifiés. Pour écrire le schéma, affectez WriteSchema comme valeur du paramètre mode. Pour enregistrer les données pour la table et tous ses descendants, affectez au paramètre writeHierarchy la valeur true. |
|
WriteXml(TextWriter, XmlWriteMode, Boolean) | Écrit les données en cours, et éventuellement le schéma, de DataTable à l'aide des TextWriter et XmlWriteMode spécifiés. Pour écrire le schéma, affectez WriteSchema comme valeur du paramètre mode. Pour enregistrer les données pour la table et tous ses descendants, affectez au paramètre writeHierarchy la valeur true. |
|
WriteXml(XmlWriter, XmlWriteMode, Boolean) | Écrit les données en cours, et éventuellement le schéma, de DataTable à l'aide des XmlWriter et XmlWriteMode spécifiés. Pour écrire le schéma, affectez WriteSchema comme valeur du paramètre mode. Pour enregistrer les données pour la table et tous ses descendants, affectez au paramètre writeHierarchy la valeur true. |
|
WriteXmlSchema(Stream) | Écrit la structure de données actuelle du DataTable sous la forme d'un schéma XML dans le flux de données spécifié. |
|
WriteXmlSchema(String) | Écrit la structure de données actuelle du DataTable sous la forme d'un schéma XML dans le fichier spécifié. |
|
WriteXmlSchema(TextWriter) | Écrit la structure de données actuelle du DataTable sous la forme d'un schéma XML à l'aide du TextWriter spécifié. |
|
WriteXmlSchema(XmlWriter) | Écrit la structure de données actuelle du DataTable sous la forme d'un schéma XML à l'aide du XmlWriter spécifié. |
|
WriteXmlSchema(Stream, Boolean) | Écrit la structure de données actuelle du DataTable sous la forme d'un schéma XML dans le flux de données spécifié. Pour enregistrer le schéma pour la table et tous ses descendants, affectez au paramètre writeHierarchy la valeur true. |
|
WriteXmlSchema(String, Boolean) | Écrit la structure de données actuelle du DataTable sous la forme d'un schéma XML dans le fichier spécifié. Pour enregistrer le schéma pour la table et tous ses descendants, affectez au paramètre writeHierarchy la valeur true. |
|
WriteXmlSchema(TextWriter, Boolean) | Écrit la structure de données actuelle du DataTable sous la forme d'un schéma XML à l'aide du TextWriter spécifié. Pour enregistrer le schéma pour la table et tous ses descendants, affectez au paramètre writeHierarchy la valeur true. |
|
WriteXmlSchema(XmlWriter, Boolean) | Écrit la structure de données actuelle du DataTable sous la forme d'un schéma XML à l'aide du XmlWriter spécifié. Pour enregistrer le schéma pour la table et tous ses descendants, affectez au paramètre writeHierarchy la valeur true. |
| Nom | Description | |
|---|---|---|
|
ColumnChanged | Se produit après la modification d'une valeur du DataColumn spécifié dans un DataRow. |
|
ColumnChanging | Se produit lors de la modification d'une valeur du DataColumn spécifié dans un DataRow. |
|
Disposed | Ajoute un gestionnaire d'événements qui doit écouter l'événement Disposed pour le composant. (Hérité de MarshalByValueComponent.) |
|
Initialized | Se produit une fois que le DataTable est initialisé. |
|
RowChanged | Se produit lorsque DataRow a été correctement modifié. |
|
RowChanging | Se produit lorsque DataRow est en cours de modification. |
|
RowDeleted | Se produit lorsqu'une ligne de la table a été supprimée. |
|
RowDeleting | Se produit avant qu'une ligne de la table soit sur le point d'être supprimée. |
|
TableCleared | Se produit une fois DataTable effacé. |
|
TableClearing | Se produit lorsque DataTable est effacé. |
|
TableNewRow | Se produit lorsqu'un nouveau DataRow est inséré. |
| Nom | Description | |
|---|---|---|
|
AsDataView | Crée et retourne un objet DataView prenant en charge LINQ. (Défini par DataTableExtensions.) |
|
AsEnumerable | Retourne un objet IEnumerable<T> où le paramètre générique T est DataRow. Cet objet peut être utilisé dans une requête d'expression ou de méthode LINQ. (Défini par DataTableExtensions.) |
| Nom | Description | |
|---|---|---|
|
fInitInProgress | Infrastructure. Vérifie si l'initialisation est en cours. L'initialisation se produit au moment de l'exécution. |
| Nom | Description | |
|---|---|---|
|
IListSource.ContainsListCollection | Pour obtenir une description de ce membre, consultez IListSource.ContainsListCollection. |
|
IListSource.GetList | Pour obtenir une description de ce membre, consultez IListSource.GetList. |
|
IXmlSerializable.GetSchema | Pour obtenir une description de ce membre, consultez IXmlSerializable.GetSchema. |
|
IXmlSerializable.ReadXml | Pour obtenir une description de ce membre, consultez IXmlSerializable.ReadXml. |
|
IXmlSerializable.WriteXml | Pour obtenir une description de ce membre, consultez IXmlSerializable.WriteXml. |
DataTable est un objet central dans la bibliothèque ADO.NET. Les autres objets qui utilisent DataTable sont DataSet et DataView.
Lorsque vous accédez à des objets DataTable, remarquez qu'ils respectent la casse dans certaines conditions. Par exemple, si DataTable est appelé "mydatatable" et un autre "Mydatatable", une chaîne utilisée pour rechercher une des deux tables est considérée comme respectant la casse. Cependant, si "mydatatable" existe, mais pas "Mydatatable", la chaîne recherchée est considérée comme ne respectant pas la casse. Un DataSet peut contenir deux objets DataTable qui ont la même valeur de propriété TableName, mais des valeurs de propriété Namespace différentes. Pour plus d'informations sur l'utilisation d'objets DataTable, consultez Création d'un DataTable (ADO.NET).
Si vous créez DataTable par programme, vous devez d'abord définir son schéma en ajoutant des objets DataColumn à DataColumnCollection (accessible à l'aide de la propriété Columns). Pour plus d'informations sur l'ajout d'objets DataColumn, consultez Ajout de colonnes à un DataTable (ADO.NET).
Pour ajouter des lignes à DataTable, vous devez d'abord utiliser la méthode NewRow pour retourner un nouvel objet DataRow. La méthode NewRow retourne une ligne avec le schéma de DataTable, tel qu'il est défini par le DataColumnCollection de la table. Le nombre maximal de lignes qu'un DataTable peut stocker est 16 777 216. Pour plus d'informations, consultez Ajout de données à un objet DataTable.
DataTable contient aussi une collection d'objets Constraint qui peuvent être utilisés pour garantir l'intégrité des données. Pour plus d'informations, consultez Contraintes DataTable (ADO.NET).
Un grand nombre d'événements DataTable peuvent être utilisés pour déterminer si des modifications sont apportées à une table. Il s'agit de RowChanged, RowChanging, RowDeleting et RowDeleted. Pour plus d'informations sur les événements qui peuvent être utilisés avec un DataTable, consultez Gestion des événements DataTable (ADO.NET).
Lorsqu'une instance de DataTable est créée, les valeurs initiales de certaines propriétés de lecture/écriture sont rétablies. Pour obtenir la liste de ces valeurs, consultez la rubrique relative au constructeur DataTable.DataTable.
Remarque
|
|---|
|
Les objets DataSet et DataTable héritent de MarshalByValueComponent et prennent en charge l'interface ISerializable pour le .NET Framework Remoting. Ce sont les seuls objets ADO.NET que vous pouvez utiliser pour le .NET Framework Remoting. |
L'exemple suivant crée deux objets DataTable et un objet DataRelation, et ajoute les nouveaux objets à un DataSet. Les tables sont ensuite affichées dans un contrôle DataGridView.
' Put the next line into the Declarations section. private dataSet As DataSet Private Sub MakeDataTables() ' Run all of the functions. MakeParentTable() MakeChildTable() MakeDataRelation() BindToDataGrid() End Sub Private Sub MakeParentTable() ' Create a new DataTable. Dim table As DataTable = new DataTable("ParentTable") ' Declare variables for DataColumn and DataRow objects. Dim column As DataColumn Dim row As DataRow ' Create new DataColumn, set DataType, ColumnName ' and add to DataTable. column = New DataColumn() column.DataType = System.Type.GetType("System.Int32") column.ColumnName = "id" column.ReadOnly = True column.Unique = True ' Add the Column to the DataColumnCollection. table.Columns.Add(column) ' Create second column. column = New DataColumn() column.DataType = System.Type.GetType("System.String") column.ColumnName = "ParentItem" column.AutoIncrement = False column.Caption = "ParentItem" column.ReadOnly = False column.Unique = False ' Add the column to the table. table.Columns.Add(column) ' Make the ID column the primary key column. Dim PrimaryKeyColumns(0) As DataColumn PrimaryKeyColumns(0)= table.Columns("id") table.PrimaryKey = PrimaryKeyColumns ' Instantiate the DataSet variable. dataSet = New DataSet() ' Add the new DataTable to the DataSet. dataSet.Tables.Add(table) ' Create three new DataRow objects and add ' them to the DataTable Dim i As Integer For i = 0 to 2 row = table.NewRow() row("id") = i row("ParentItem") = "ParentItem " + i.ToString() table.Rows.Add(row) Next i End Sub Private Sub MakeChildTable() ' Create a new DataTable. Dim table As DataTable = New DataTable("childTable") Dim column As DataColumn Dim row As DataRow ' Create first column and add to the DataTable. column = New DataColumn() column.DataType= System.Type.GetType("System.Int32") column.ColumnName = "ChildID" column.AutoIncrement = True column.Caption = "ID" column.ReadOnly = True column.Unique = True ' Add the column to the DataColumnCollection. table.Columns.Add(column) ' Create second column. column = New DataColumn() column.DataType= System.Type.GetType("System.String") column.ColumnName = "ChildItem" column.AutoIncrement = False column.Caption = "ChildItem" column.ReadOnly = False column.Unique = False table.Columns.Add(column) ' Create third column. column = New DataColumn() column.DataType= System.Type.GetType("System.Int32") column.ColumnName = "ParentID" column.AutoIncrement = False column.Caption = "ParentID" column.ReadOnly = False column.Unique = False table.Columns.Add(column) dataSet.Tables.Add(table) ' Create three sets of DataRow objects, five rows each, ' and add to DataTable. Dim i As Integer For i = 0 to 4 row = table.NewRow() row("childID") = i row("ChildItem") = "Item " + i.ToString() row("ParentID") = 0 table.Rows.Add(row) Next i For i = 0 to 4 row = table.NewRow() row("childID") = i + 5 row("ChildItem") = "Item " + i.ToString() row("ParentID") = 1 table.Rows.Add(row) Next i For i = 0 to 4 row = table.NewRow() row("childID") = i + 10 row("ChildItem") = "Item " + i.ToString() row("ParentID") = 2 table.Rows.Add(row) Next i End Sub Private Sub MakeDataRelation() ' DataRelation requires two DataColumn ' (parent and child) and a name. Dim parentColumn As DataColumn = _ dataSet.Tables("ParentTable").Columns("id") Dim childColumn As DataColumn = _ dataSet.Tables("ChildTable").Columns("ParentID") Dim relation As DataRelation = new _ DataRelation("parent2Child", parentColumn, childColumn) dataSet.Tables("ChildTable").ParentRelations.Add(relation) End Sub Private Sub BindToDataGrid() ' Instruct the DataGrid to bind to the DataSet, with the ' ParentTable as the topmost DataTable. DataGrid1.SetDataBinding(dataSet,"ParentTable") End Sub
// Put the next line into the Declarations section. private System.Data.DataSet dataSet; private void MakeDataTables() { // Run all of the functions. MakeParentTable(); MakeChildTable(); MakeDataRelation(); BindToDataGrid(); } private void MakeParentTable() { // Create a new DataTable. System.Data.DataTable table = new DataTable("ParentTable"); // Declare variables for DataColumn and DataRow objects. DataColumn column; DataRow row; // Create new DataColumn, set DataType, // ColumnName and add to DataTable. column = new DataColumn(); column.DataType = System.Type.GetType("System.Int32"); column.ColumnName = "id"; column.ReadOnly = true; column.Unique = true; // Add the Column to the DataColumnCollection. table.Columns.Add(column); // Create second column. column = new DataColumn(); column.DataType = System.Type.GetType("System.String"); column.ColumnName = "ParentItem"; column.AutoIncrement = false; column.Caption = "ParentItem"; column.ReadOnly = false; column.Unique = false; // Add the column to the table. table.Columns.Add(column); // Make the ID column the primary key column. DataColumn[] PrimaryKeyColumns = new DataColumn[1]; PrimaryKeyColumns[0] = table.Columns["id"]; table.PrimaryKey = PrimaryKeyColumns; // Instantiate the DataSet variable. dataSet = new DataSet(); // Add the new DataTable to the DataSet. dataSet.Tables.Add(table); // Create three new DataRow objects and add // them to the DataTable for (int i = 0; i<= 2; i++) { row = table.NewRow(); row["id"] = i; row["ParentItem"] = "ParentItem " + i; table.Rows.Add(row); } } private void MakeChildTable() { // Create a new DataTable. DataTable table = new DataTable("childTable"); DataColumn column; DataRow row; // Create first column and add to the DataTable. column = new DataColumn(); column.DataType= System.Type.GetType("System.Int32"); column.ColumnName = "ChildID"; column.AutoIncrement = true; column.Caption = "ID"; column.ReadOnly = true; column.Unique = true; // Add the column to the DataColumnCollection. table.Columns.Add(column); // Create second column. column = new DataColumn(); column.DataType= System.Type.GetType("System.String"); column.ColumnName = "ChildItem"; column.AutoIncrement = false; column.Caption = "ChildItem"; column.ReadOnly = false; column.Unique = false; table.Columns.Add(column); // Create third column. column = new DataColumn(); column.DataType= System.Type.GetType("System.Int32"); column.ColumnName = "ParentID"; column.AutoIncrement = false; column.Caption = "ParentID"; column.ReadOnly = false; column.Unique = false; table.Columns.Add(column); dataSet.Tables.Add(table); // Create three sets of DataRow objects, // five rows each, and add to DataTable. for(int i = 0; i <= 4; i ++) { row = table.NewRow(); row["childID"] = i; row["ChildItem"] = "Item " + i; row["ParentID"] = 0 ; table.Rows.Add(row); } for(int i = 0; i <= 4; i ++) { row = table.NewRow(); row["childID"] = i + 5; row["ChildItem"] = "Item " + i; row["ParentID"] = 1 ; table.Rows.Add(row); } for(int i = 0; i <= 4; i ++) { row = table.NewRow(); row["childID"] = i + 10; row["ChildItem"] = "Item " + i; row["ParentID"] = 2 ; table.Rows.Add(row); } } private void MakeDataRelation() { // DataRelation requires two DataColumn // (parent and child) and a name. DataColumn parentColumn = dataSet.Tables["ParentTable"].Columns["id"]; DataColumn childColumn = dataSet.Tables["ChildTable"].Columns["ParentID"]; DataRelation relation = new DataRelation("parent2Child", parentColumn, childColumn); dataSet.Tables["ChildTable"].ParentRelations.Add(relation); } private void BindToDataGrid() { // Instruct the DataGrid to bind to the DataSet, with the // ParentTable as the topmost DataTable. dataGrid1.SetDataBinding(dataSet,"ParentTable"); }
.NET Framework
Pris en charge dans : 4, 3.5, 3.0, 2.0, 1.1, 1.0.NET Framework Client Profile
Pris en charge dans : 4, 3.5 SP1Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Ce type est sécurisé pour les opérations de lecture multithread. Vous devez synchroniser les opérations d'écriture.
Remarque