Récupérer les noms des tables

mimosa803 Messages postés 345 Date d'inscription jeudi 15 février 2007 Statut Membre Dernière intervention 24 avril 2010 - 28 févr. 2008 à 09:01
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 1 mars 2008 à 18:48
 Bonjour, je souhaite savoir comment je peux récupérer les noms des tables de ma base de données et leurs champs avec du code bien sûr s'il existe, parce que j'ai trouvé une requête qui peut lister tous les tables.
Merci

12 réponses

billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
28 févr. 2008 à 09:33
Salut


Cette question est plutôt une question SQL si je ne m'abuse. Le bon forum est donc www.sqlfr.com .

Tu y trouveras néanmoins des sources intéressantes sur le sujet :

- http://www.sqlfr.com/codes/SQL-SERVER-RECUPERER-TOUTES-TABLES-TOUS-CHAMPS-GRACE_26609.aspx

- http://www.sqlfr.com/codes/LISTE-BASES-TABLES-COLONNES-TRIES-TYPE-PROCEDURE-STOCKES_34071.aspx

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
0
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
28 févr. 2008 à 09:38
Je viens de relire ta question et je ne comprends plus trop le sens, désolé.

Tu veux connaitre la requête ou le code C# qui appelle la requête ?

Dans ce dernier cas, tu trouveras beaucoup de code d'accès aux données et d'exécution de requête et cherchant un peu sur le site ^^

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
0
mimosa803 Messages postés 345 Date d'inscription jeudi 15 février 2007 Statut Membre Dernière intervention 24 avril 2010
28 févr. 2008 à 09:40
Oui je sais que c'est une requete "select * from sysobjects where xtype='U' " mais je veux les rrécupérer avec du code (des objets SQLClient)
0
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
28 févr. 2008 à 09:41
Après un petite recherche, un lien qui peut t'être intéressant :

http://www.csharpfr.com/codes/DIVERS-CLASSES-POUR-UTILISER-MYSQL-ACCESS-SQL-SERVER_36034.aspx

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lassaad83 Messages postés 148 Date d'inscription vendredi 28 avril 2006 Statut Membre Dernière intervention 1 décembre 2009
28 févr. 2008 à 09:48
Bonjour, ça depend de la version d'Sql Server, pour sql 2000 ça doit être ça :



SELECT o.name, c.name
FROM dbo.syscolumns c
INNERJOIN dbo.sysobjects o
ON c.id = o.id
WHERE o.name = 'Le_nom_de_ta_Table'
ORDER BY c.colorder

Pour 2005 c'est ça :





SELECT






OBJECT_NAME
(
Object_ID
)



AS



'NomTable'
,



Name



AS



'NomColone'
,
Column_ID


FROM



sys.all_columns





ORDER



BY
NomTable

,
NomColone
0
mimosa803 Messages postés 345 Date d'inscription jeudi 15 février 2007 Statut Membre Dernière intervention 24 avril 2010
28 févr. 2008 à 09:48
Mon problème ce n'est pas la manipulation des requetes, voila un exemple avec du code qui permet de récupérer les tables access :
<li>using System.Data.OleDb; </li><li>using System.Data; </li><li>using System.Collections; </li><li></li><li>//</li><li>//Methodes de récupéraion des noms de Tables</li><li>//</li><li>public DataTable GetTables(OleDbConnection conn) </li><li>{ </li><li>conn.Open(); </li><li>DataTable schemaTable conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, </li><li>newobject[] {null, null, null, "TABLE"}); </li><li>conn.Close(); </li><li>return schemaTable; </li><li>} </li><li></li><li>privatevoid button1_Click(object sender, System.EventArgs e) </li><li>{ </li><li>string source "Provider=Microsoft.Jet.OLEDB.4.0;" + </li><li>"Data Source = cheminde_la_base_de_donnees"; </li><li>OleDbConnection conn = new OleDbConnection(source); </li><li>DataTable t = GetTables(conn); </li><li>tableCheckedListBox.DataSource = t; </li><li>tableCheckedListBox.DisplayMember = "TABLE_NAME"; </li><li>listBox1.DataSource = t; </li><li>listBox1.DisplayMember = "TABLE_NAME"; </li><li>}</li>
0
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
28 févr. 2008 à 09:50
Pour t'aider un peu, un des méthodes :

Tu utilise le namespace System.Data.SqlClient;


Puis le code :


SqlConnection connection = new SqlConnection("ConnectionString");

try

{

connection.Open();


SqlCommand command = new SqlCommand("select * from sysobjects where xtype='U'");

SqlDataReader reader = command.ExecuteReader();



while (reader.Read())

{

string name = reader.GetString(0);//Index de la colonne

}

}

finally

{

connection.Close();

}

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
0
lassaad83 Messages postés 148 Date d'inscription vendredi 28 avril 2006 Statut Membre Dernière intervention 1 décembre 2009
28 févr. 2008 à 09:51
Ah ben moi tout comme
billou_13
 j'ai pas trop bien compris ta question apparement ...
0
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
28 févr. 2008 à 09:53
Okay, j'avais pas vu ton dernier post. Autant pour moi alors ^^. Je ne connais pas trop les bases Access (question d'éthique ^^)

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
0
mimosa803 Messages postés 345 Date d'inscription jeudi 15 février 2007 Statut Membre Dernière intervention 24 avril 2010
28 févr. 2008 à 10:00
C'est bon j'ai pu récupérer les noms des tables mais je récupère aussi les diagrammes(schéma de la base).
0
mimosa803 Messages postés 345 Date d'inscription jeudi 15 février 2007 Statut Membre Dernière intervention 24 avril 2010
28 févr. 2008 à 10:27
J'ai voulu récupérer les champs d'une table, j'ai écrit cette requete mais elle ne retourne rien :

string requete1 = "SELECT COLUMN_NAME, ORDINAL_POSITION FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='PROFILE'";
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
1 mars 2008 à 18:48
Salut,

N'oublie pas que ces vues donnent des résultats pour la base courante, donc assure toi que c'est la bonne.

/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous