Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数据表上的Linq查询_Linq_Datatable - Fatal编程技术网

数据表上的Linq查询

数据表上的Linq查询,linq,datatable,Linq,Datatable,我有一个由存储过程填充的数据表。我正在使用groupby对DataTable进行查询,以便在ListView中实现ListView。(马特·贝塞思-) 我的代码隐藏中的查询: var query = from c in dtTaskOrder.AsEnumerable() group c by c.Field<string>("CLIN") into g select new { Key = g.Key,

我有一个由存储过程填充的数据表。我正在使用groupby对DataTable进行查询,以便在ListView中实现ListView。(马特·贝塞思-)

我的代码隐藏中的查询:

var query = from c in dtTaskOrder.AsEnumerable() 
        group c by c.Field<string>("CLIN") into g
        select new
        {
            Key = g.Key,
            Count = g.Count(),
            Items = g
        };

listv.DataSource = query.ToList();
listv.DataBind();
var query=来自dtTaskOrder.AsEnumerable()中的c
c组由c.Field(“CLIN”)改为g组
选择新的
{
键=g键,
Count=g.Count(),
项目=g
};
listv.DataSource=query.ToList();
listv.DataBind();
在我的aspx文件中,我尝试评估项目和后续列:


//列名
//列名
//最后一列名称
HttpException未经用户代码处理-当它尝试对上述列名求值时

我如何制定上述查询,以便“Items”是“Typed”的,并且我可以使用列名


谢谢您的帮助。

您编写的评估(“SLIN”)是否可能是评估(“CLIN”)?
只是一个想法。否则,我以前使用过相同的代码,它也可以工作。

如果不仅仅是打字错误,您可以使用
g
上的子查询来构建强类型对象的集合:

var query = from c in dtTaskOrder.AsEnumerable()
            group c by c.Field("CLIN") into g
            select new
            {
                Key = g.Key,
                Count = g.Count(),
                Items = from i in g
                        select new { CLIN = i.Field("CLIN"),
                                     ACRN = i.Field("ACRN"),
                                     Status = i.Field("Status") }
            };

谢谢dahlbyk。g上的子查询完成了这项工作。我能够对列进行评估,因为它是关于列名的新信息。再次感谢。
var query = from c in dtTaskOrder.AsEnumerable()
            group c by c.Field("CLIN") into g
            select new
            {
                Key = g.Key,
                Count = g.Count(),
                Items = from i in g
                        select new { CLIN = i.Field("CLIN"),
                                     ACRN = i.Field("ACRN"),
                                     Status = i.Field("Status") }
            };