我正在使用查询来查看用户是否已存在于数据库中。如果找到用户,则将其添加到列表(而不是数据库),并显示消息。如果用户尚不存在,程序将继续添加用户。
将查询结果添加到列表时,如果结果未找到,则存在问题。如果查询没有找到(用户尚不存在),则返回的值不为null或0,所以我不确定如何检查。
我的代码工作正常,但我的问题是试图找到一种更优雅的方法。我尝试将查询结果添加到列表中。如果它是“catch”,则意味着用户不存在并且应该添加。现在我的代码是:
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.");
}
谢谢你的帮助!
答案 0 :(得分: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.");
}
答案 1 :(得分: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.");
}
它很有效,因为数据服务器只返回一个数字而不是结果集。