我正在尝试从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”,但事实并非如此。
答案 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()
,但该调用要求结果有一个条目。如果您有可能没有记录,则不想使用它。