Paul Clement
6/8/2005 5:36:00 PM
On Tue, 07 Jun 2005 21:53:26 -0700, Mahvish K via .NET 247 <anonymous@dotnet247.com> wrote:
¤ Hi
¤
¤ I am working in VB .Net and i need to display field names for each table in Access from my application using ODBC.
¤ Could you please help me out with the query that i need to display them.
¤
You need to use OLEDB for this since column retrieval is not support via ODBC:
Dim DatabaseConnection As New System.Data.OleDb.OleDbConnection
Dim SchemaTable As DataTable
DatabaseConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=E:\My Documents\db1.mdb"
DatabaseConnection.Open()
''Retrieve schema information about database tables
SchemaTable =
DatabaseConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, _
'' New Object() {Nothing, Nothing,
Nothing, Nothing})
''Retrieve schema information about Table1 Columns.
''SchemaTable =
DatabaseConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Columns, _
''New Object() {Nothing, Nothing, "Table1"})
Dim RowCount As Int32
For RowCount = 0 To SchemaTable.Rows.Count - 1
''Console.WriteLine(SchemaTable.Rows(RowCount)!PK_NAME.ToString)
''Console.WriteLine(SchemaTable.Rows(RowCount)!COLUMN_NAME.ToString)
''Console.WriteLine(SchemaTable.Rows(RowCount)!CATALOG_NAME.ToString)
''Console.WriteLine(SchemaTable.Rows(RowCount)!DESCRIPTION.ToString)
''Console.WriteLine(SchemaTable.Rows(RowCount)!CATALOG_NAME.ToString)
''Console.WriteLine(SchemaTable.Rows(RowCount)!DESCRIPTION.ToString)
''Console.WriteLine(SchemaTable.Rows(RowCount)!IS_NULLABLE.ToString)
''Console.WriteLine(SchemaTable.Rows(RowCount)!TABLE_NAME.ToString)
Next RowCount
DataGrid1.DataSource = SchemaTable
DatabaseConnection.Close()
Paul
~~~~
Microsoft MVP (Visual Basic)