Bonjour à tous,

C'est mon premier post et je m'excuse par avance s'il est mal rédigé .

J'aimerais récupérer à travers une fonction VB .Net le type de champ d'une table access.
Je m'explique : certaines colonnes contiennent soit des champs de type "Memo", soit de type "NuméroAuto", soit de type "Texte", ... c'est cette information que j'aimerais récupérer.

Le but étant de savoir si la colonne traitée est de champ NuméroAuto, j'ai volontairement fixé une colonne en NuméroAuto dans ma table et vérifié par le code si la propriété AutoIncrement de cette colonne était à True. Malheureusement, ce n'est pas le cas alors que le nom du champ est bien le bon et le type de variables stockées (System.Int32) également :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
For _item = 0 To dataTable.Columns.Count - 1
            Dim Nom_Champ As String = dataTable.Columns(_item).ColumnName.ToString
            Dim Type_Champ As String = dataTable.Columns(_item).DataType.ToString
            Dim AutoIncrement As Boolean = dataTable.Columns(_item).AutoIncrement 'Toujours à False ...
Next
J'ai ensuite tenté d'utiliser directement les commandes SQL :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
Dim DataTable1 As DataTable = dBconnexion.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, New Object() {Nothing, Nothing, NomTable, Nothing})
Dim dataRowArray() As DataRow = DataTable1.Select(Nothing, "ORDINAL_POSITION", DataViewRowState.CurrentRows)
...
_listNomChamps.AddRange(From item In dataRowArray Select Convert.ToString(item!COLUMN_NAME))
_listTypeChamps.AddRange(From item In dataRowArray Select Convert.ToString(item!DATA_TYPE))
_listTypeChamps1.AddRange(From item In dataRowArray Select Convert.ToString(item!COLUMN_PROPID))
_listTypeChamps2.AddRange(From item In dataRowArray Select Convert.ToString(item!COLUMN_FLAGS))
...
Aucun argument ne me renvoie le type tel que je l'attends (le mieux serait en String mais je m'arrangerai avec un entier !). J'ai la plupart du temps un champ vide qui m'est renvoyé voir un entier mais rien de particulier et distinctif à la colonne de type NuméroAuto.

Une idée?

Merci pour votre aide