【问题标题】:Making a query of a query对查询进行查询
【发布时间】:2011-10-20 20:35:55
【问题描述】:

在 Visual Studio 中,我展示了这个数据集查询的结果:

SELECT *,uv,hours,minutes FROM dbo.kbpres
 INNER JOIN
doss ON kbpres.ino = doss.ino
 where doss.dosnm LIKE @cboDossiernm

但现在我想在另一个 datagridview 中显示 uv 的所有小时和分钟的总和(这是处理某个案例的人员的姓名)所以例如在原始 DGview 我有

- blablabla / person1 / 1 / 0 - blablabla / person2 / 5 / 0 - blablabla / person3 / 1 / 0 - blablabla / person1 / 1 / 0 - blablabla / person1 / 1 / 0 - blablabla / person4 / 1 / 0

我想在第二个 DGview 中看到:

- 人 1 / 3 / 0 - 人 2 / 5 / 0 - 人 3 / 1 / 0 ....

如何做到最好?

【问题讨论】:

  • 看看 LINQ,因为您已经从数据库中返回了所需的所有数据,您应该能够对其运行 linq 查询以获得所需的结果。

标签: sql visual-studio datagridview dataset


【解决方案1】:

查看这个Similar Question,它处理内存中的查询结果。还提供了一些建议,您应该在数据库级别执行聚合。

HTH

【讨论】:

  • 我读过但我不太明白:var aggregatedAddresses = from DataRow row in dt.Rows group row by row["AddressA"] into g select new { Address = g.Key,字节 = g.Sum(row => (uint)row["Bytes"]) };诠释 i = 1; foreach(var row in aggregatedAddresses) { result.Rows.Add(i++, row.Address, row.Byte);对我来说 Byte = g.Sum(row => (uint)row["Bytes"]) "Bytes",是一个名为 hours 的列,它只是一个像 4 或 2 这样的数字。当我使用我的列时它不起作用.我应该如何使用它??
  • 我使用的确切代码是:DataTable table;表 = togaDataSet.Tables["kbpres"]; var query = from row in table.AsEnumerable() group row by row.Field("uv") into grp orderby grp.Key select new { Id = grp.Key, Sum = grp.Sum(r => r .Field("uur")), Minuut = grp.Sum(s => s.Field("minuut")), };诠释 i = 1; foreach (var grp in query) { //Console.WriteLine("{0}\t{1}", grp.Id, grp.Sum); dataGridView2.Rows.Add(i++, grp.Id, grp.Sum,grp.Minuut); } dataGridView2.Rows.Add("","Totale som",table.Compute("Sum(uur)", "uur > 0"),table.Compute("Sum(Minuut)", "minuut > 0") );
猜你喜欢
  • 1970-01-01
  • 2017-11-19
  • 1970-01-01
  • 1970-01-01
  • 2018-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多