日期:2014-05-18  浏览次数:21102 次

求救:关于dataset的数据汇总问题
在dataset里面有一个表结构是这样的

ID(字符) name(字符) dj(数值) shl(数值)
A01 abc 15 10
A02 abcd 15 20
A03 abc 1 30


写SQL语句的话,我可以写成:select id,sum(dj) as dj,sum(shl) as shl,count(*) from table group by id


可是现在是在dataset里面操作,所以不知道怎么处理!!

最好给代码,谢谢了!

------解决方案--------------------
你也可以先写select id,sum(dj) as dj,sum(shl) as shl,count(*) from table group by id
这样的SQL语句,然后查询结果到Dataset中的。再操作Dataset。
------解决方案--------------------
举个例子:
原来的数据在表dt0,现在新建一张表dt1.
对于ID=A01
C# code
datarow[] rows = dt0.select("id = 'A01'");
//rows.length就是你要的id =A01的总数。
string sum(dj) = "";
for (int i = 0;i<rows.length;i++)
{
sum(dj) = sum(dj)+rows[i][2];//求shl就是rows[i][3]
}
//sum(dj)就是你要的和。然后写到dt1中

------解决方案--------------------
探讨
在dataset里面有一个表结构是这样的

ID(字符) name(字符) dj(数值) shl(数值)
A01 abc 15 10
A02 abcd 15 20
A03 abc 1 30


写SQL语句的话,我可以写成:select id,sum(dj) as dj,sum(shl) as shl,count(*) from table group by id


可是现……

------解决方案--------------------
感觉可以用两种方法:
1. 循环DSet对应的Table(在数据量不大的时候可以这样做),如果你非常介意ColumnsName的问题,你可以在方法中添加需要汇总的ColumnsName参数啊...
2. 利用间接表(作同条件查询),如果数据量大,我觉得还是这样做比较保险...至少可以保证速度.
linq...看到邪恶的东西了,我不懂...据说是前几年出现的"新"玩意,好像有人指导学习下...