Kursach

Две функции должны делать два запроса:
Login_DB.GetUserById - уже делает один запрос, он односложный и не должен вызвать печали.
Member_DB.GetMemberAttrWithQuery - функция делает запрос MySqlCommand command = new MySqlCommand(SELECT_MEMBER_ATTRS_QUERY + userId.ToString() + "'", connection);
и потом по циклу db.GetAttrNameById(reader.GetInt32(ID_ATTR_COLUMN));

Вот это место вам надо оптимизировать. Там есть #region Don't touch - это место, которое трогать нельзя. Если решите трогать, то обязательно напишите мне. Там почти всё завязано на рефлексии. Что-то менять там надо очень аккуратно, иначе во многих местах функция работать не будет. Она самая центральная в получении пользователя.