You can't automatically bind variables to your command. You need to do it manually, like:
using (SqlDataAdapter a = new SqlDataAdapter("SELECT * FROM TEST_TABLE WHERE ID = @filter", conn))
{
int filter = ID;
a.SelectCommand.Parameters.AddWithValue("@filter", filter);