I seem to have found the answer to my question. Here is a way:
-----------------
Dim da As SqlDataAdapter
Dim ds As DataSet
Dim dc As DataColumn
Dim dt As DataTable
Dim dr As DataRow
Dim strSQL As String = "SELECT * FROM Customers"
da = New SqlDataAdapter(strSQL, NorthwindConnectionString)
da.MissingSchemaAction = MissingSchemaAction.AddWithKey
' Use the FillSchema method
ds = New DataSet()
da.FillSchema(ds, SchemaType.Source, "Customers")
dt = New DataTable()
dt.Columns.Add("ColumnName", GetType(System.String))
dt.Columns.Add("DataType", GetType(System.String))
dt.Columns.Add("AllowDBNull", GetType(System.String))
dt.Columns.Add("DefaultValue", GetType(System.String))
dt.Columns.Add("MaxLength", GetType(System.String))
dt.Columns.Add("Unique", GetType(System.String))
For Each dc In ds.Tables("Customers").Columns
dr = dt.NewRow
dr(0) = dc.ColumnName
dr(1) = dc.DataType
dr(2) = dc.AllowDBNull.ToString
dr(3) = dc.DefaultValue.ToString
dr(4) = dc.MaxLength.ToString
dr(5) = dc.Unique.ToString
dt.Rows.Add(dr)
Next dc
' Bind the DataGrid to the FillSchema DataTable
DataGrid1.DataSource = dt
' Bind the DataGrid to the results
DataGrid1.DataSource = ds.Tables("Customers")
-----------------
Hope this is useful
E