well, first off, the exception actually says there's something wrong with your sql - do you have a column 'Id' for example - what happens if you remove the 'order by...' clause ?
secondly, thats a horrible way to write SQL statements - you should use parameterised queries, along the lines of
using (SqlCommand command = new SqlCommand(
"Select * from StateTable where CountryName=@countryname", con))
{
command.Parameters.Add(new SqlParameter("countryname", country));
cmd.CommandType = CommandType.Text;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
con.Close();
return ds;
}