Как исправить ошибку "System.InvalidOperationException: "Недопустимая попытка чтения при отсутствии данных.""?
вы неправильно ридер используете. 

SqlDataReader loginReaderData = LoginData.ExecuteReader();

 while (loginReaderData.Read())
 {
    var id = loginReaderData["ID"];
    // ...    
  }

Но судя по примеру - вам вообще не ридер нужен, а нужно https://docs.microsoft.com/en-us/dotnet/api/system...

string sqlExpression = "SELECT ID FROM Users WHERE ID = 1";
SqlCommand loginData = new SqlCommand(sqlExpression, connection);
var id = (string)loginData.ExecuteScalar();
//...
Ну как минимум попросить reader прочитать [очередную] строку (Read()) и уже тогда добывать из прочитанной строки поля.