【问题标题】:2sxc - Query data for statistics2sxc - 查询数据进行统计
【发布时间】:2017-10-08 17:55:35
【问题描述】:

我无法做的一件事是查询数据以供统计使用。

例如在 FnL 中,你可以使用完整的 SQL server 功能,有点我仍然不知道如何访问 2sxc 中的数据以达到相同的目的......

有什么方法可以将列表中的数据放入 sql 视图(临时表)然后查询它?或者使用任何其他方法访问数据并进行查询?

最好的问候, 若昂

【问题讨论】:

    标签: sql-server dotnetnuke 2sxc


    【解决方案1】:

    你可以在 Razor 中做到这一点。

    您在模板中收到一个对象 App.Data["your_pipeline_data"] 例如 App.Data["Default"] 取决于您在 2sxc 可视化查询/管道中过滤、排序和提取的内容。你可以在这个对象上使用 Linq 来操作数据,如果你把这个数据放在一个可枚举类型的对象中,你就可以获得你想要的信息。

    一个例子:

    @{
        var termGroups = ((IEnumerable<dynamic>)AsDynamic(App.Data["Default"]))
            .OrderBy(t => t.Nom)                              // sort terms
            .GroupBy(l => l.Nom.Substring(0, 1).ToUpper())    // group by first letter
            .OrderBy(s => s.Key);                               // ensure sorting at group-level
    
        int groups= Enumerable.Count(termGroups);
    
    }
    

    相当于 SQL 中的 GroupBy。

    要操作所有数据,不要放任何 Linq 指令

    @{
            var terms = ((IEnumerable<dynamic>)AsDynamic(App.Data["Default"]));   
            int count = Enumerable.Count(terms);
        }
    

    之后,只需像这样在模板中使用变量:

    There are @terms items in the list.
    

    There are @groups groups in the list.
    

    致谢:Linq 代码来自 2sxc A-Z 教程

    【讨论】:

    • 从来没有想过 LINQ 是一种查询语言,但这正是它的本质...... 2sxc 页面上没有“GroupBy”信息。我可以搜索网络上可用的任何 LINQ 文档吗?是否所有 LINQ 运算符都可用于 2sxc 视图?
    • 我对这两个问题都说是。 Linq 存在是因为 SIC 默认集成了它,因此所有 Linq 语法都可用。查看 IEnumerable 文档:msdn.microsoft.com/en-us/library/…
    • 最后一个插件。有了这个: foreach(var z in items){@z.field} 我得到以下输出:A、A、B、C、D、D。如何在一行代码中对它们进行分组和计数?我需要输出这个:A - 2; B - 1; C - 1; D - 2 等
    猜你喜欢
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 2019-03-04
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    • 2011-09-12
    相关资源
    最近更新 更多