Leggere struttura database

di il
4 risposte

Leggere struttura database

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

  • Re: Leggere struttura database

    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

  • Re: Leggere struttura database

    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…

  • Re: Leggere struttura database

    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)

  • Re: Leggere struttura database

    Ok grazie Sergio per le info adesso faccio qualche prova.

    Grazie ancora

Devi accedere o registrarti per scrivere nel forum
4 risposte