繁体   English   中英

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

[英]Getting a value from database column using Linq C#

我正在尝试从SQL Server数据库检索字符串值,我正在从事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”,但不是。

在这种情况下,集合的结果是一个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() ,但是该调用要求结果中包含一个条目。 如果有没有记录的机会,那么您就不想使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM