Leggere struttura database

di orione1976 il
4 risposte

Ciao a tutti, una info se possibile. Si può con vb.net leggere la struttura di un database, quante Tabelle ci sono e che campi contengono?

Ho un mio programmino al quale faccio delle modifiche e dalla prima versione ad oggi ho aggiunto anche dei campi in alcune tabelle del database access. Attualmente faccio tutto a mano ma stavo pensando di fare una cosa un po' più carina per aggiornare i database. Con MySql c'è il comando per vedere la struttura, ma con vb.net non ho trovato nulla in rete. Avete qualche idea in merito così approfondisco lo studio?

Grazie

4 Risposte

  • In ogni DBMS, la struttura di un database (tabelle, colonne, indici, trigger, etc) e' descritta nel database di ‘sistema’ in altre tabelle. 

    Inoltre, quando crei la connessione al database, via codice, hai a disposizione anche le API per richiedere la struttura del database stesso.

    Basta leggere la documentazione

  • Ciao “Migliorabile” è sicuramente come dici tu ci mancherebbe altro, ma non trovo in rete nulla, nemmeno uno straccio di esempio, puoi indicarmi qualcosa? Con MySql ho trovato tutti i riferimenti che mi servivano ma non un DB access no…

  • Se usi System.Data.OleDb prova con

    Dim connection As New OleDbConnection(connectionString)
    connection.Open()
    Dim schemaTable As DataTable = connection.GetSchema("Tables")

    ora su schemaTable hai la lista delle tabelle
    (devi filtrare con TABLE_TYPE="TABLE")

    per avere nomi dei campi e tipo campi, una volta fatta la connessione:

    Dim tableName As String = "NomeTabella"
    Dim restrictions() As String = {Nothing, Nothing, tableName, Nothing}
    Dim schemaTable As DataTable = connection.GetSchema("Columns", restrictions)

    Poi usi i campi "COLUMN_NAME" e "DATA_TYPE" per capire la struttura

    DATA_TYPE:
    2 = SmallInt
    3 = Integer
    4 = Single
    5 = Double
    6 = Currency
    7 = DateTime
    11 = Boolean
    17 = Byte
    72 = GUID
    130 = Text (Stringa)
    131 = Decimal (Numero decimale)

  • Ok grazie Sergio per le info adesso faccio qualche prova.

    Grazie ancora

Devi accedere o registrarti per scrivere nel forum
4 risposte