Based on your comments and since my comment worked I repeat my solution here:
DataGridView1.DataSource = ds.Tables(0)
Your question why my code worked is actually a question regarding the difference between a dataset and a datatable.
You can consider that a dataset is a set of datatables, or in other words imagine dataset something like a database and the datatable a table in that database.
So you should set as a datasource to your grid a datatable and not a set of tables