Recuperer les champs d'un table d'une base de données

cs_nehla Messages postés 49 Date d'inscription jeudi 23 mars 2006 Statut Membre Dernière intervention 18 juin 2009 - 6 août 2008 à 20:09
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 - 7 août 2008 à 09:47
salut
je veux savoir comment je peut utilser cette instruction pour récuperer les noms des colonnes d'une table précise (cad j'ai deja récuperer le nom de la table) d'une base de données  "oleDbConnection1.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Columns, new Object [] {null,null,"table" });"
Merci d'avance pour votre aide

nehloucha

5 réponses

cs_nehla Messages postés 49 Date d'inscription jeudi 23 mars 2006 Statut Membre Dernière intervention 18 juin 2009
6 août 2008 à 20:26
salut
j'ai oublier de vous dire que je programme avec le c#
Merci

nehloucha
0
lemmingperceval Messages postés 128 Date d'inscription mardi 18 décembre 2007 Statut Membre Dernière intervention 2 août 2009 6
6 août 2008 à 22:34
Salut, en sql, regarde du coté de SHOW FULL COLUMN
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
6 août 2008 à 23:07
Salut

Avec sqlserveur tu peux attaquer les tables system
exemple sys.columns et sys.tables

Sinon tu as aussi

SELECT table_schema,

table_name,

column_nameb

FROM INFORMATION_SCHEMA.COLUMNS

WHERE table_name = 'MyTableName';

ou

SQL-DMO

http://www.dreamincode.net/forums/showtopic34582.htm

Et peut etre d'autre solution

bon coding
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
7 août 2008 à 09:46
Salut :)
J'ai déjà fait des truc dans le genre (mais en VB.NET) je te post ces fonctions (TRÈS lentes avec Oracle par contre).

Public Enum EnIn_TypeDeDonnees As Integer
            TypeTexte = 1
            TypeDate = 2
            TypeReal = 3
            TypeEntier = 4
End Enum

Public Function ListeTable() As String()
        Dim test As New ADODB.Connection
        Dim rr As ADODB.Recordset
        Dim RetourShema As String
        Dim SplitRetourShema() As String
        Dim Retour() As String
        test.ConnectionString = Connection.ConnectionString
        test.Mode = ADODB.ConnectModeEnum.adModeRead
        test.Open()
        rr = test.OpenSchema(ADODB.SchemaEnum.adSchemaTables)
        If rr.EOF Then
            Return Nothing
        Else
            RetourShema = rr.GetString(ADODB.StringFormatEnum.adClipString, , vbTab, vbCrLf, "NULL") ' rr.GetString(ADODB.StringFormatEnum.adClipString, , "|", vbCrLf, "NULL")
            SplitRetourShema = Split(RetourShema, vbCrLf)
            ReDim Retour(0 To UBound(SplitRetourShema) - 1)
            For Compteur As Int32 = 0 To UBound(SplitRetourShema) - 1
                Retour(Compteur) = Split(SplitRetourShema(Compteur), vbTab)(2)
            Next
            Return Retour
        End If
    End Function

Public Function ListeClonnes(ByVal NomTable As String) As String()
        Try
            Dim TableShema As New DataTable()
            Dim EtatInitial As ConnectionState
            Dim Retour As String()
            EtatInitial = Connection.State
            If EtatInitial <> ConnectionState.Open Then
                Connection.Open()
            End If
            Select Case True
                Case TypeOf Connection Is System.Data.Odbc.OdbcConnection
                    Dim Adapteur As System.Data.Odbc.OdbcDataAdapter                    Adapteur New System.Data.Odbc.OdbcDataAdapter("SELECT * FROM """ & NomTable & """ WHERE 0 1;", Connection)
                    Adapteur.Fill(TableShema)
                Case TypeOf Connection Is System.Data.OleDb.OleDbConnection
                    Dim Adapteur As System.Data.OleDb.OleDbDataAdapter                    Adapteur New System.Data.OleDb.OleDbDataAdapter("SELECT * FROM """ & NomTable & """ WHERE 0 1;", Connection)
                    Adapteur.Fill(TableShema)
                Case TypeOf Connection Is System.Data.SqlClient.SqlConnection
                    Dim Adapteur As System.Data.SqlClient.SqlDataAdapter                    Adapteur New System.Data.SqlClient.SqlDataAdapter("SELECT * FROM """ & NomTable & """ WHERE 0 1;", Connection)
                    Adapteur.Fill(TableShema)
            End Select
            ReDim Retour(0 To TableShema.Columns.Count - 1)
            For Compteur As Int32 = 0 To TableShema.Columns.Count - 1
                Retour(Compteur) = TableShema.Columns(Compteur).ColumnName
            Next
            If EtatInitial <> ConnectionState.Open Then
                Connection.Close()
            End If
            Return Retour
        Catch ex As Exception
            Return Nothing
        End Try
    End Function

Public Function ListeTypeClonnes(ByVal NomTable As String) As ClassSourcesDeDonneesNew.Cl_DefinitionEnumConstStructFoncPartager.EnIn_TypeDeDonnees()
        Try
            Dim TableShema As New DataTable()
            Dim EtatInitial As ConnectionState
            Dim Retour As ClassSourcesDeDonneesNew.Cl_DefinitionEnumConstStructFoncPartager.EnIn_TypeDeDonnees()
            EtatInitial = Connection.State
            If EtatInitial <> ConnectionState.Open Then
                Connection.Open()
            End If
            Select Case True
                Case TypeOf Connection Is System.Data.Odbc.OdbcConnection
                    Dim Adapteur As System.Data.Odbc.OdbcDataAdapter                    Adapteur New System.Data.Odbc.OdbcDataAdapter("SELECT * FROM """ & NomTable & """ WHERE 0 1;", Connection)
                    Adapteur.Fill(TableShema)
                Case TypeOf Connection Is System.Data.OleDb.OleDbConnection
                    Dim Adapteur As System.Data.OleDb.OleDbDataAdapter                    Adapteur New System.Data.OleDb.OleDbDataAdapter("SELECT * FROM """ & NomTable & """ WHERE 0 1;", Connection)
                    Adapteur.Fill(TableShema)
                Case TypeOf Connection Is System.Data.SqlClient.SqlConnection
                    Dim Adapteur As System.Data.SqlClient.SqlDataAdapter                    Adapteur New System.Data.SqlClient.SqlDataAdapter("SELECT * FROM """ & NomTable & """ WHERE 0 1;", Connection)
                    Adapteur.Fill(TableShema)
            End Select
            ReDim Retour(0 To TableShema.Columns.Count - 1)
            For Compteur As Int32 = 0 To TableShema.Columns.Count - 1
                Debug.Print(TableShema.Columns(Compteur).ColumnName & "|" & TableShema.Columns(Compteur).DataType.ToString())
                Select Case TableShema.Columns(Compteur).DataType.ToString()
                    Case "System.String"
                        Retour(Compteur) = EnIn_TypeDeDonnees.TypeTexte
                    Case "System.Decimal"
                        Retour(Compteur) = EnIn_TypeDeDonnees.TypeEntier
                    Case "System.Single"
                        Retour(Compteur) = EnIn_TypeDeDonnees.TypeReal
                    Case "System.Double"
                        Retour(Compteur) = EnIn_TypeDeDonnees.TypeReal
                    Case "System.DateTime"
                        Retour(Compteur) = EnIn_TypeDeDonnees.TypeDate
                End Select
            Next
            If EtatInitial <> ConnectionState.Open Then
                Connection.Close()
            End If
            Return Retour
        Catch ex As Exception
            Return Nothing
        End Try
    End Function

Bonne prog :)

Amicalement
Pensez "Réponse acceptée"
0

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

Posez votre question
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
7 août 2008 à 09:47
Heeee non je crois que je t'es dit des bêtises. Ce sont d'autre fonction qui RAMMMMMME avec oracle.

Amicalement
Pensez "Réponse acceptée"
0
Rejoignez-nous