select * from Rates where From =
In general, that is a bad idea to name a column with a reserved word of the sql language (from).
In this case, you should enclose your column name between [ ] and/or qualify it with it's full qualifier:
select * from Rates where [Rates].[From] =
Moreover, it is a terrible practice to construct a sql query by concatenating strings from user input like you are doing ; it leaves your code opened to SQL injection attacks. Better use parameterized queries which will ensure that nobody can act on your database in a way you would not have wanted in the first place. There are plenty of examples on this site's forums of parameterized queries, you just have to do a quick search for these words.