如何对DataSet里的DataTable进行统计??
我有一个DataSet
里边有个表
结构:
ID Name Price
1 A 1.0
1 A 2.0
1 A 3.0
2 B 1.0
2 B 2.0
2 B 3.0
我要得到这样的一个DataTable 或DateView 用来绑定DataGrid
ID Name Count Sum_Price
1 A 3 6.0
2 B 3 6.0
怎么用代码实现呀??
问题点数:20、回复次数:13Top
1 楼kjq_vb(跟着MS走)回复于 2006-02-04 17:29:17 得分 0
select id,name,sum(*) as count,sum(price) as sum_price from table group by id,nameTop
2 楼kjq_vb(跟着MS走)回复于 2006-02-04 17:30:03 得分 0
更正上面的:
select id,name,count(*) as count,sum(price) as sum_price from table group by id,name
Top
3 楼sgci_violence(建新)回复于 2006-02-04 17:36:04 得分 0
DataSet 里不支等SQL吧!!
你是在哪里执行SQL?
如果是数据库的放就你这样做Top
4 楼kjq_vb(跟着MS走)回复于 2006-02-04 17:57:46 得分 0
难道你的dataset里的表不是从数据库来吗,如果是就可以用这方法Top
5 楼sgci_violence(建新)回复于 2006-02-04 18:05:34 得分 0
我的DATASET数据是从XML来的
Top
6 楼sgci_violence(建新)回复于 2006-02-05 09:02:17 得分 0
没有人给个例子吗??谢了!!Top
7 楼sgci_violence(建新)回复于 2006-02-06 09:57:49 得分 0
过年了,人都没有上班吗?Top
8 楼Qqwwee_Com(http://qqwwee.com)回复于 2006-02-06 10:27:52 得分 10
就用笨蛋办法
1.在内存中生成一个新的dataTable
对应
ID Name Count Sum_Price
这4列,
然后对dateset的每行做处理,把数据存放到上面的datatable中。
====CSDN 小助手 V2.5 2005年11月05日发布====
CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
速度快,使用方便。
界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
下载:http://szlawbook.com/csdnv2
Top
9 楼fangxinggood(JustACoder)回复于 2006-02-06 11:10:46 得分 0
我的DATASET数据是从XML来的
================
贴出你的XML文件,用xpath可以解决你的问题。Top
10 楼Jimmyliu2004()回复于 2006-02-06 14:25:06 得分 10
看看我这个例子是从文本文件里取数据生成DATASET然后绑定到datagrid里的
Dim intColCount As Integer = 0
Dim blnFlag As Boolean = True
Dim mydt As DataTable = New DataTable
Dim mydc As DataColumn
Dim mydr As DataRow
Dim FilePath As String
If OpenFile_dg.ShowDialog = DialogResult.OK Then '打开一个文件选择框
FilePath = Me.OpenFile_dg.FileName
End If
Dim strline As String
Dim aryline As String()
Dim i As Integer
If FilePath <> Nothing Then '当文件名不为空
Dim mysr As System.IO.StreamReader = New System.IO.StreamReader(FilePath, System.Text.Encoding.Default)
strline = mysr.ReadLine()
While strline <> Nothing
aryline = strline.Split(vbTab) '以TAB键为分隔符
'aryline = strline.Split("|".ToCharArray())
If blnFlag Then
blnFlag = False
intColCount = aryline.Length
For i = 0 To aryline.Length - 1
mydc = New DataColumn(aryline(i))
mydt.Columns.Add(mydc)
Next
Else
mydr = mydt.NewRow()
For i = 0 To intColCount - 1
mydr(i) = aryline(i)
Next
mydt.Rows.Add(mydr)
End If
strline = mysr.ReadLine()
End While
End If
Me.DataGrid1.DataSource = mydt '填充数据到datagrid
Me.DataGrid1.ReadOnly = TrueTop
11 楼Jimmyliu2004()回复于 2006-02-06 14:26:02 得分 0
更正一下上面的“看看我这个例子是从文本文件里取数据生成Datatable然后绑定到datagrid里的”
Top
12 楼Tony8002003(冷)回复于 2006-02-07 10:49:01 得分 0
你的数据是从XML里提出来的,所以你不想更改XML里的内容,而你想要得到一个DataTable 或DateView 用来绑定DataGrid。个人意见:
写一个DataTable。它里面的数据为你的XML内容,然后再写一个列。这个列为合计列。然后把这个DataTable绑定到DataGrid中。
Top
13 楼caoguoqing209()回复于 2006-02-13 14:31:02 得分 0
select id,name,count(*) as count,sum(price) as sum_price from table group by id,name order by id,nameTop




