Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

DataColumn.DataType, propriété

Obtient ou définit le type des données stockées dans la colonne.

Espace de noms :  System.Data
Assembly :  System.Data (dans System.Data.dll)

public Type DataType { get; set; }

Valeur de propriété

Type : System.Type
Objet Type qui représente le type de données de la colonne.

ExceptionCondition
ArgumentException

La colonne contient déjà des données stockées.

La définition de la valeur DataType est très importante pour garantir la création et la mise à jour correctes des données dans une source de données.

La propriété DataType prend en charge les types de données .NET Framework de base suivants :

ainsi que le type de tableau suivant :

  • Byte[]

Une exception est générée si vous modifiez cette propriété alors que la colonne a commencé à stocker des données.

Si vous affectez à AutoIncrement la valeur true avant de définir la propriété DataType et si vous essayez d'affecter au type une valeur autre qu'un type integer, une exception est générée.

RemarqueRemarque

Dans certains cas, une colonne de type de données Byte[] nécessite un traitement spécial puisque, contrairement aux types de données .NET Framework de base, il s'agit d'un type de données référence. Si une colonne de type de données Byte[] est utilisée en tant que PrimaryKey ou en tant que clé Sort ou RowFilter pour un DataView, toute modification à la valeur de colonne doit impliquer l'assignation de la valeur de colonne Byte[] à un objet Byte[] instancié séparément. Cette assignation est requise pour déclencher la mise à jour des index internes utilisés par les opérations de tri, de filtrage et de clé primaire. L'exemple suivant illustre ces propos :

byte[] columnValue = (byte[])myDataTable.Rows[0][0];
byte[] newValue = (byte[])columnValue.Clone();
newValue[1] = 2;
myDataTable.Rows[0][0] = newValue;
RemarqueRemarque

Bien qu'il soit possible de définir une colonne comme un type de données autre que les types de données .NET Framework de base et Byte[], une telle colonne sera traitée comme un type défini par l'utilisateur et sera sujette aux restrictions d'utilisation suivantes. (Pour plus d'informations sur les types définis par l'utilisateur, consultez Creating and Using User-Defined Types.)

  • La colonne ne peut pas faire partie d'une expression RowFilter ou Select.

  • Si la colonne est utilisée en tant que PrimaryKey, que Sort ou que DataView, elle doit être traitée comme un champ immuable ; les données de la colonne ne doivent pas être modifiées une fois qu'elle a été ajoutée à la table.

  • Son ColumnMapping peut avoir uniquement la valeur MappingType.Element.

  • La classe qui implémente le type de données de la colonne doit être marquée avec SerializableAttribute et, si nécessaire, implémenter l'interface ISerializable ou IXmlSerializable.

  • La prise en charge du suivi des modifications est limitée. Pour utiliser le mécanisme de suivi des modifications de la classe DataTable mécanisme, la classe qui implémente le type de données de la colonne doit soit implémenter l'interface IChangeTracking, soit prendre la responsabilité d'informer DataRow lorsque la valeur de colonne est modifiée, en appelant SetModified sur la ligne ou en assignant l'objet de valeur de colonne à un objet de valeur de colonne instancié séparément.

L'exemple suivant ajoute des colonnes de différents types de données à DataTable, puis ajoute une ligne à la table.


public DataTable MakeDataTable(){

    DataTable myTable;
    DataRow myNewRow; 
    // Create a new DataTable.
    myTable = new DataTable("My Table");

    // Create DataColumn objects of data types.
    DataColumn colString = new DataColumn("StringCol");
    colString.DataType = System.Type.GetType("System.String");
    myTable.Columns.Add(colString); 

    DataColumn colInt32 = new DataColumn("Int32Col");
    colInt32.DataType = System.Type.GetType("System.Int32");
    myTable.Columns.Add(colInt32);

    DataColumn colBoolean = new DataColumn("BooleanCol");
    colBoolean.DataType = System.Type.GetType("System.Boolean");
    myTable.Columns.Add(colBoolean);

    DataColumn colTimeSpan = new DataColumn("TimeSpanCol");
    colTimeSpan.DataType = System.Type.GetType("System.TimeSpan");
    myTable.Columns.Add(colTimeSpan);

    DataColumn colDateTime = new DataColumn("DateTimeCol");
    colDateTime.DataType = System.Type.GetType("System.DateTime");
    myTable.Columns.Add(colDateTime);

    DataColumn colDecimal = new DataColumn("DecimalCol");
    colDecimal.DataType = System.Type.GetType("System.Decimal");
    myTable.Columns.Add(colDecimal);

    DataColumn colByteArray = new DataColumn("ByteArrayCol");
    colByteArray.DataType = System.Type.GetType("System.Byte[]");
    myTable.Columns.Add(colByteArray);


    // Populate one row with values.
    myNewRow = myTable.NewRow();

    myNewRow["StringCol"] = "Item Name";
    myNewRow["Int32Col"] = 2147483647;
    myNewRow["BooleanCol"] = true;
    myNewRow["TimeSpanCol"] = new TimeSpan(10,22,10,15,100);
    myNewRow["DateTimeCol"] = System.DateTime.Today;
    myNewRow["DecimalCol"] = 64.0021;
    myNewRow["ByteArrayCol"] = new Byte[] { 1, 5, 120 };
    myTable.Rows.Add(myNewRow);
    return myTable;  
 }


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 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 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

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.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft