2

我正在使用查询来查看用户是否已存在于数据库中。如果它找到一个用户,它会将其添加到列表(而不是数据库)中,并显示一条消息。如果用户不存在,程序继续添加用户。

将查询结果添加到列表时存在问题,但结果一无所获。如果查询什么也没找到(用户还不存在),则返回的值不是 null 或 0,所以我不确定如何检查。

我的代码工作正常,但我的问题是试图找到一种更优雅的方法。我尝试将查询结果添加到列表中。如果它是“捕获”,则表示用户不存在,应添加。现在我的代码是:

     var userIsNew =
                        from f in controlEntities.Users
                        where (f.UserId == userIdTextBox.Text)
                        select f;

                    List<Users> temp = new List<Users>(); 

                    try
                    {
                        temp = userIsNew.ToList<Users>();
                    }
                    catch
                    {
                        //do nothing
                    }


                    if (temp.Count > 0)
                    {
                        MessageBox.Show("This UserId already exists in the Database. \nPlease try another UserId.");
                    }

谢谢您的帮助!

4

2 回答 2

2
        var userIsNew = (from f in controlEntities.Users
                                where (f.UserId == userIdTextBox.Text)
                                select f).FirstOrDefault();


        if (userIsNew != null)
        {
            MessageBox.Show("This UserId already exists in the Database. \nPlease try another UserId.");
        }
于 2012-07-25T17:32:50.943 回答
0

另一种方法是:

        bool userIsNew = controlEntities.Users.
            Count(f => f.UserId == userIdTextBox.Text) == 0;

        if (!userIsNew)
        {
            MessageBox.Show("This UserId already exists in the Database. \nPlease try another UserId.");
        }

它很有效,因为数据服务器只返回一个数字而不是结果集。

于 2015-12-29T03:18:44.807 回答