关于内存表????

gaozhigang 2009-07-15 03:17:32
上网查了一下。datatable也算是一种内存表。可以进行许多操作,如:计算列,筛选数据等等。我现在想实现对datatable或dataset的数据进行类似group by的操作。希望效率要高。各位大虾发表一下意见!
...全文
68 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaozhigang 2009-07-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 asdf_ndsc 的回复:]

[/Quote]
这种方法效率比较高
Hassle 2009-07-15
  • 打赏
  • 举报
回复
先用DataTable查询

再用Dictionary<TKey, TValue>实现group by的操作

仅供参考

asdf_ndsc 2009-07-15
  • 打赏
  • 举报
回复
dt.DefaultView.ToTable(bool distinct, params string[] columnNames);

DefaultView .net2.0 以后就自带了 ToTable 方法

//
// 摘要:
// 根据现有 System.Data.DataView 中的行,创建并返回一个新的 System.Data.DataTable。
//
// 参数:
// distinct:
// 如果为 true,则返回的 System.Data.DataTable 将包含所有列都具有不同值的行。默认值为 false。
//
// columnNames:
// 一个字符串数组,包含要包括在返回的 System.Data.DataTable 中的列名的列表。System.Data.DataTable 包含指定的列,其顺序与这些列在该数组中的顺序相同。
//
// 返回结果:
// 一个新的 System.Data.DataTable 实例,其中包含所请求的行和列。
public DataTable ToTable(bool distinct, params string[] columnNames);
dancingbit 2009-07-15
  • 打赏
  • 举报
回复
那你就不要使用DataTable了,直接使用数据库系统的功能反而效率更高些。
gaozhigang 2009-07-15
  • 打赏
  • 举报
回复
而且我的数据量很大。
gaozhigang 2009-07-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wzytiger 的回复:]
datatable可以使用聚合函数,这样一来你就可以group by了
网上例子很多的,以前经常用
[/Quote]

是可以用聚合函数。但是这样就必须循环找字段有几组值,找到后才能进行计算,还得把数据在存储起来。这样效率太低了。
wzytiger 2009-07-15
  • 打赏
  • 举报
回复
datatable可以使用聚合函数,这样一来你就可以group by了
网上例子很多的,以前经常用
gaozhigang 2009-07-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 enaking 的回复:]
可以没得问题,,,我一直用datatable,又方便
[/Quote]

可以谈谈你是如何实现group by的。
enaking 2009-07-15
  • 打赏
  • 举报
回复
可以没得问题,,,我一直用datatable,又方便
gaozhigang 2009-07-15
  • 打赏
  • 举报
回复
自己先顶一下

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧