Вам НЕ нужно открывать соединение. OleDbDataAdapter.Fill откроет соединение и закроет его, если оно обнаружило, что оно закрыто для начала. Fill оставляет соединение в состоянии, в котором оно его находит.
Я ставлю под сомнение ваш SQL. Я понимаю, что OleDb НЕ поддерживает именование параметров в SQL. Это нужно заполнитель "?" вместо @login. Вам нужен параметр для каждого заполнителя, и параметры должны быть добавлены в порядке их появления. Если ваш SQL-код недействителен, то в DataTable у вас будет либо исключение SQL, либо данные, т.е. строка 0!