See your code here.
adp.Fill(ds);
cbfrom.DataSource = ds.Tables["tblcty"];
dataset is not setting table name itself based on table name in db you're retrieving.
You need to define it explicitly, In other way if you aren't defining it then you simply fetch table from dataset using indexing.
So Update your snippet with.
adp.Fill(ds);
cbfrom.DataSource = ds.Tables[0];
OR
adp.Fill(ds,"tblcty");
cbfrom.DataSource = ds.Tables["tblcty"];
Hope it helps.