使用Linq C#从数据库列获取值#

时间:2017-01-25 18:30:47

标签: c# sql linq

我正在尝试从SQL服务器数据库中检索字符串值,我正在使用C#项目,我正在使用LINQ to SQL。 这是我的代码段

using (AlHayatEntities entity = new AlHayatEntities())
{
    var query = from o in entity.users
                where o.userName == "" + txtUsername.Text && o.password == "" + txtPassword.Text
                select o.role;
    MessageBox.Show(query + "");
}

这就是表格

id  | userName | password | role
1     shareef    123        admin

我希望邮件打印出“admin”,但事实并非如此。

1 个答案:

答案 0 :(得分:0)

在这种情况下,集合的结果是IQueryable,因为你有一个列,它将是一个IQueryable。

您可以像这样修改代码。

 using (AlHayatEntities entity = new AlHayatEntities())
 {
     var result = (from o in entity.users
                 where o.userName == txtUsername.Text 
                         && o.password ==  txtPassword.Text
                 select o.role).FirstOrDefault();
     MessageBox.Show(result);
 }

我还删除了您示例中的各种“”项目,因为它们不是解决方案的一部分。

另一种选择是遵循查询格式,然后在显示时调用FirstOrDefault。如下所示

 using (AlHayatEntities entity = new AlHayatEntities())
 {
     var query = from o in entity.users
                 where o.userName == txtUsername.Text 
                         && o.password ==  txtPassword.Text
                 select o.role;
     MessageBox.Show(query.FirstOrDefault());
 }

您也可以使用.First(),但该调用要求结果有一个条目。如果您有可能没有记录,则不想使用它。