
c# 用text控件接收数据库信息
问题是这样,数据库里面有一个Users表,表里面有username,userid,realname,sex,tel等信息,现在我希望用text和dropdownlist控...
问题是这样,数据库里面有一个Users表,表里面有username,userid,realname,sex,tel等信息,现在我希望用text和dropdownlist控件把users表中的数据显示出来,其中userid和username为当前登录用户的信息,请问怎么实现?
也就是说到数据库Users表中,查找userid和当前用户的userid一致的,然后将其其余属性用text控件和dropdownlist控件(sex用此控件)表示出来。
这是我写的:
var results = from r in db.Users
where r.userid == Profile.Login.LoginId.ToString()
select new
{
r.realname,
r.sex,
r.school,
r.tel,
r.QQ,
r.email
};
if(results != null)
{
txtRealName = results.
}
我本来打算用results.realname之类的,后来发现results只能做gridview的datasource,不能直接引用。 展开
也就是说到数据库Users表中,查找userid和当前用户的userid一致的,然后将其其余属性用text控件和dropdownlist控件(sex用此控件)表示出来。
这是我写的:
var results = from r in db.Users
where r.userid == Profile.Login.LoginId.ToString()
select new
{
r.realname,
r.sex,
r.school,
r.tel,
r.QQ,
r.email
};
if(results != null)
{
txtRealName = results.
}
我本来打算用results.realname之类的,后来发现results只能做gridview的datasource,不能直接引用。 展开
4个回答
展开全部
你对于查询表达式不太熟悉吧?
results返回的是一个匿名集合,集合——哪怕只有一个元素也是集合,直接调用肯定是不行的!
试一下这样行不?
txtRealName.text = reuslts.first().realname;
//要的是集合的第一个元素实体realname,而不是results.realname,加一个first()可以取出集合的第一个元素的,这样你定义中有r.realname,所以是可以调用的!
results返回的是一个匿名集合,集合——哪怕只有一个元素也是集合,直接调用肯定是不行的!
试一下这样行不?
txtRealName.text = reuslts.first().realname;
//要的是集合的第一个元素实体realname,而不是results.realname,加一个first()可以取出集合的第一个元素的,这样你定义中有r.realname,所以是可以调用的!
追问
呵呵,代码可以打出来了!谢谢,不过我想搞清楚以下,这儿first表示的是什么呢?
追答
我已经给你说了,你对查询表达式不熟悉,而且不知道linq to sql,这里使用的是lambada表达式,first是一个匿名委托,调用集合中的第一个符合条件的元素!
string s = "dfsdfdsfdsfaadf";
s.First()表示的就是char,这个字符就是d。
s.First()表示的就是第一个char转化为byte,返回的是一个byte类型,就是'd'的编码。
s.First(_Item => _Item>‘f’);表示返回大于f的第一个字符就是's'。有很多这样的匿名函数的!
如果,while,as,first,count,select等等,就是你看不懂的哪些都是。除此之外还有system.data.sql.linq空间中的sqlmethod等方法都属于这个的,类似于查询表达式。
一般认为在查询表达式中可实现的,在lambada表达式中了可以实现。
var s = from user in db.users where user.name = "";
这是查询表达式,
var s = db.users.where(_Item => _Item.name == "");
这是lamabda表达式。
两者作用相同,在程序中基本是一样的!但S的类型不同。
查询表达式中s的类型为IQuery,而lambda表达式中则是IEnumerable类型的。
展开全部
你使用了linq比较高级,不太会呀。
如果不用linq倒恐怕好做些?
如果不用linq倒恐怕好做些?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你试试吧results的类型强制转换一下,或者前面别用var,直接用你定义的强类型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询