[英]How to get text from LINQ2SQL query?
我有一个网页,我在其中向USER提供写笔记的选项。 现在,当网页检查到USER是:abc时,它会从MEMO表中提取注释。
这是我在Page_Load()中的代码:
using (EntityMemoDataContext em = new EntityMemoDataContext())
{
int getEntity = Int16.Parse(Session["EntityIdSelected"].ToString());
var showMemo = from r in em.EntityMemoVs_1s
where r.EntityID == getEntity
select r.Memo;
tbShowNote.Text = String.Join(@"<br />", showMemo);
}
tbShowNote向我展示了这样的价值:
test<br />test1<br />test1<br />test4<br />test4
我希望这样:
测试
测试1
测试2 ...
tbShowNote是一个TextBox!
你只要求提供第一份备忘录,这就是你所得到的。 如果你想在html中用它自己的行列出每个枚举,你可以这样做:
using (EntityMemoDataContext em = new EntityMemoDataContext())
{
int getEntity1 = Int16.Parse(Session["EntityIdSelected"].ToString());
var showMemo = from r in em.EntityMemoVs_1s
where r.EntityID == getEntity1
select new
{
r.Memo
};
tbShowNote.Text = String.Join(@"<br />", showMemo);
}
关键的一点是如果r.Memo是string类型,那么你执行的LINQ查询会给你一个IQueryable<string>
。 您可以决定是否要稍后压缩该列表。
编辑: Equiso做了一个很好的观察,因为你实际上返回了一个匿名类型的IQueryable
,而不是IQueryable<string>
因为new { ... }
语法。 我会说他和我的答案结合起来并与之一起运行:
var showMemo = from r in em.EntityMemoVs_1s
where r.EntityID == getEntity1
select r.Memo;
tbShowNote.Text = String.Join(@"<br />", showMemo);
问题出在你的linq查询的select
部分,你将结果包装成一个匿名类型,这就是为什么当你调用ToString()
你会看到{ Memo = test }
。 你可能想要这样:
var showMemo = from r in em.EntityMemoVs_1s
where r.EntityID == getEntity1
select r.Memo;
之后showMemo
将只包含字符串。
看起来你的showMemo是一个集合,然后你只是分配最高价值? 如果要将它们放在一个字符串中,则需要将它们聚合在一起。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.