cmd.CommandText = "Select [MedicineName] from [medicines]" + "order by [MedicineName] asc";
You didn't place a whitespace between [medicines] and order by
This is a very common mistake.
Why do you use a concatenation here ?
Better try :
cmd.CommandText = "Select [MedicineName] from [medicines] order by [MedicineName] asc";