Scusate se riapro questo vecchio thread, ma volevo riallacciarmi al discorso per avere alcuni chiarimenti. Dopo diverse ricerche ho scoperto che si possono ricavare i nomi e le caratteristiche dei campi di una tabella con il metodo FillSchema del DataAdapter
Esempio:
codice:
<script runat="server">
Sub Page_Load(Src As Object, E As EventArgs)
'Nome della tabella
Dim tableName As String = "annunci"
Dim dtsModel As DataSet
Dim Conn As OleDbConnection
Dim dadModel As OleDbDataAdapter
Dim dtblMain As DataTable
Dim dcolPrimaryKey As DataColumn
Dim otherColumn As DataColumn
'Prepara DataSet e Connessione
dtsModel = New DataSet()
Conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
"C:\Documents and Settings\All Users\Documenti\web_dbManager\db\esample.mdb")
dadModel = New OleDbDataAdapter("SELECT * FROM " & tableName, Conn)
dadModel.FillSchema(dtsModel, SchemaType.Mapped, tableName)
'Visualizza la chiave primaria
dtblMain = dtsModel.Tables(tableName)
For Each dcolPrimaryKey in dtblMain.PrimaryKey
Response.Write("La chiave primaria è " & dcolPrimaryKey.ColumnName & "
")
Next
Response.Write("
I campi della tabella sono:
")
For Each otherColumn in dtblMain.Columns
Response.Write("<font color='red'>" & otherColumn.ColumnName & "</font>")
Response.Write("; MaxLength: " & otherColumn.MaxLength)
Response.Write("; AllowDbNull: " & otherColumn.AllowDbNull & "
")
Next
Response.Write("
Informazioni sul database:
")
Dim f As New FileInfo("C:\Documents and Settings\All Users\Documenti\web_dbManager\db\esample.mdb")
Response.Write("Nome: " & f.Name & "
")
Response.Write("Ultima modifica: " & f.LastWriteTime & "
")
End Sub
</script>
Non ho ancora capito come fare per ricavare i nomi di tutte le tabelle contenute in un db.
Grazie.