【发布时间】:2013-07-17 17:38:59
【问题描述】:
我正在创建一个可以注册的 ASP 网站。
访问者选择注册的昵称必须是唯一的。
每次用户注册时,我从数据库中选择所有用户,然后我使用foreach循环检查或用户名是否已存在:
private List<User> listExistingUsers;
listExistingUsers = Database.GetUsers();
foreach (User u in listExistingUsers)
{
if (u.Nickname == txtNickname.text)
{
Error = "Username already in use.";
}
}
但是上面的代码不能正常工作。它不会检查从数据库中读取的列表中的所有项目。所以可能会有用户使用相同的用户名,这是我不想要的。
我可以做些什么来解决这个问题?我阅读了有关 LINQ 的信息,但我认为这是使用 List 检查用户名的错误方法。我认为这个用户名检查必须以另一种方式完成。
各位专家能帮帮我吗?我也可以使用 SQL 查询进行此检查,但我想在 c# 中进行。
【问题讨论】:
-
不检查从数据库中读取的列表中的所有项目是什么意思?哪条线从
foreach循环中跳出?你确定listExistingUsers包含所有用户吗? -
只是一个想法,但可能是案例问题。在继续解决方案之前尝试
if (u.Nickname.ToLower() == txtNickname.text.ToLower())。