2 things:
1. Make sure your query returns only the needed data. No duplicates from query itself.
2. Change this line of code:
GridView1.DataSource = ds;
to
GridView1.DataSource = ds.Tables[0];
Not an issue, but you may want to put the GridBind code in Page IsPostback property to avoid grid's rebind on every postback.