Recuperer les champs d'un table d'une base de données
cs_nehla
Messages postés49Date d'inscriptionjeudi 23 mars 2006StatutMembreDernière intervention18 juin 2009
-
6 août 2008 à 20:09
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 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
A voir également:
Recuperer les champs d'un table d'une base de données
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 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"
Vous n’avez pas trouvé la réponse que vous recherchez ?