This really is my bit of code.Im getting all of the tables names and col names contained in the database .Now i have to know the kind of column .like its int or varchar or something like that else .Can anyone assist me to within this ?? and btw this really is C# .

 OleDbConnection con = new OleDbConnection(connectionString);
 DataTable schemaCols;
        DataTable schemaTbl;
        List<string> tablesnames = new List<string>();
        string returnString="";
        try
        {
            con.Open();
            object[] objArrRestrict;
            objArrRestrict = new object[] { null, null, null, "TABLE" };
            schemaTbl = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, objArrRestrict);
            foreach (DataRow row in schemaTbl.Rows)
            {
                tablesnames.Add(row["TABLE_NAME"].ToString());
            }
            List<string> columnnames = new List<string>();
            foreach (string str in tablesnames)
            {
                 string selTbl = str;

                //con.Open();
                object[] objArrRestrictNew;
                objArrRestrictNew = new object[] { null, null, selTbl, null };
                //
                schemaCols = con.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, objArrRestrictNew);

                foreach (DataRow row in schemaCols.Rows)
                {
                    columnnames.Add(row["COLUMN_NAME"].ToString());

                }
             }
           }

One of the ways you could do this this is by using the OleDbCommand.ExecuteReader to see the schema of every table you found.

    OleDbConnection con = new OleDbConnection(connectionString);
    DataSet tablesFromDB = new DataSet();
    DataTable schemaTbl;
    try
    {
        // Open the connection
        con.Open();
        object[] objArrRestrict = new object[] { null, null, null, "TABLE" };

        // Get the table names from the database we're connected to
        schemaTbl = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, objArrRestrict);

        // Not sure if this is correct syntax...fix it if it isn't :)
        String commandText = @"SELECT * FROM {0}";

        // Get each table name that we just found and get the schema for that table.
        foreach (DataRow row in schemaTbl)
        {
            DataTable dt = new DataTable();
            OleDbCommand command = new OleDbCommand(String.Format(commandText, row["TABLE_NAME"] as String), con);
            dt.Load(command.ExecuteReader(CommandBehavior.SchemaOnly));
            tablesFromDB.Tables.Add(dt);
        }
    }

By doing this, you are able to iterate with the DataSet's DataTable collection and obtain both column names and column area types.

foreach (DataTable dt in tablesFromDB)
{
    foreach (DataColumn dc in dt.Columns)
    {
        // Do something with the column names and types here
        // dc.ColumnName is the column name for the current table
        // dc.DataType.ToString() is the name of the type of data in the column
    }
}

There's most likely an easy method to do it, but this can be a start, I believe.