Я создаю веб-сайт ASP с возможностью регистрации.Проверка или псевдоним уже существует в списке <User>
Прозвище, которое посетители выбирают для регистрации, должно быть уникальным.
Everytime когда пользователь регистрируется, я выбираю все пользователь из базы данных, а затем я использую цикл Еогеаспа для проверки или имя пользователя уже существует:
private List<User> listExistingUsers;
listExistingUsers = Database.GetUsers();
foreach (User u in listExistingUsers)
{
if (u.Nickname == txtNickname.text)
{
Error = "Username already in use.";
}
}
Но приведенный выше код не работает должным образом. Он не проверяет все элементы в списке, которые считываются из базы данных. Таким образом, возможно иметь пользователей с теми же именами пользователей, которых я не хочу.
Что делать, чтобы решить эту проблему? Я читал о LINQ, но считаю, что это неверный способ проверить имена пользователей со списком <> по-моему. Я думаю, что это имя пользователя-проверки должно быть выполнено по-другому.
Вы можете мне помочь? Я также мог бы выполнить эту проверку с помощью SQL-запроса, но я хотел бы сделать это в C#.
Что значит, что он не проверяет все элементы в списке, которые читаются из базы данных? Какая линия выходит из цикла foreach? вы уверены, что 'listExistingUsers' содержит всех пользователей? – Tim
просто мысль, но это может быть проблема. попробуйте 'if (u.Nickname.ToLower() == txtNickname.text.ToLower())' перед тем, как перейти к решениям. – user1