繁体   English   中英

如何从LINQ2SQL查询中获取文本?

[英]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.

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