Replace your cmd.ExecuteNonQuery() by below and it should work. ExecuteNonQuery will execute the query but no data return instead it will return no of record affected and should be used to insert/delete/update statements only.
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds.Table[0];
GridView1.DataBind();