登録可能な ASP Web サイトを作成しています。
訪問者が登録するニックネームは一意である必要があります。
ユーザーが登録するたびに、データベースからすべてのユーザーを選択し、 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# で実行したいと考えています。