OVH Cloud OVH Cloud

Obtenir le nom des champs d'une table

1 réponse
Avatar
Sylvie
Bonjour !

J'ai une application qui fonctionne avec une base de=20
donn=E9es et je voudrais cr=E9er des requ=EAtes sans avoir =E0=20
inscrire le nom des champs =E0 chaque fois.

Est-ce qu'il y a une fa=E7on d'obtenir le nom des champs=20
r=E9sultants d'une requ=EAte de type "select * from..". Pour=20
la valeur du champs, il n,y a pas de probl=E8me mais=20
comment faire pour avoir le nom du champs ?

Merci.

1 réponse

Avatar
Xavier Marion
tu utilise quoi comme type de connexion pour ta base ??

si c'est du OleDbConnection (ca doit surement marché avec du SqlConnection)
:

Dim Cnx as New OleDb.OleDbConnection("Chaine de Connexion")
Dim DT as datable

'le nom des tables de la base
DT As DataTable = Cnx.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Tables, _
New Object() {Nothing, Nothing, Nothing, "TABLE"})

For Each dr As DataRow In DT.Rows
Console.WriteLine(CType(dr.Item("TABLE_Name"), String))
Next

'le nom des requêtes
DT = Cnx.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Views, Nothing)

For Each dr As DataRow In DT.Rows
Console.WriteLine(CType(dr.Item("TABLE_NAME"), String))
Next


'le nom des champs
Dim TableName as String="NomDuneTable"
DT = Cnx.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Columns, _
New Object() {Nothing, Nothing, TableName})

For Each Dr As DataRow In DT.Rows
Console.WriteLine(cstr(dr("column_name")))
Next

il y as peut être plus simple, j'espère que cela t'aideras.

++ Xav

"Sylvie" a écrit dans le message de
news: 335901c4a26d$45aee000$
Bonjour !

J'ai une application qui fonctionne avec une base de
données et je voudrais créer des requêtes sans avoir à
inscrire le nom des champs à chaque fois.

Est-ce qu'il y a une façon d'obtenir le nom des champs
résultants d'une requête de type "select * from..". Pour
la valeur du champs, il n,y a pas de problème mais
comment faire pour avoir le nom du champs ?

Merci.