首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于DataTable的列求和的有关问题

2011-12-13 
关于DataTable的列求和的问题现在我这里拼出一个DataTable,列名是从数据库取出来的变量(列名不知道),要求

关于DataTable的列求和的问题
现在我这里拼出一个DataTable,列名是从数据库取出来的变量(列名不知道),要求每一列的和如何做?  
我用DataTable.Compute好像不行

[解决办法]
for(int i = 0; i < datatable1.Rows.Count; i ++)
{
sumCol1 += convert.ToInt32(datatable1.Rows[i][0]); //第一列
sumCol2 += convert.ToInt32(datatable1.Rows[i][1]); //第二列
sumCol3 += convert.ToInt32(datatable1.Rows[i][1]);
……
}
如果其中某个数据有误,可能会引发异常,注意加判断.
[解决办法]
NameDoubleCollection colSum = new NameDoubleCollection();
foreach (DataColumn col in Td.Dt.Columns) {
foreach (DataRow row in Td.Dt.Rows) {
colSum[col.ColumnName] += (double)row[col.ColumnName];
}
}

这样把每一列的和都保存在一个集合里了,访问这个集合就可以的

[解决办法]
思路就是外循环每一列:j=0;j <datatable1.colums.count;j++
内循环行:i=0;i <datatable1.rows.count;i++
求和:sum += convert.ToInt32(datatable1.Rows[i][j]);
[解决办法]

int[] sumCol;
for(int j = 0; j < datatable1.Columns.Count;j++)
{
for(int i = 0; i < datatable1.Rows.Count; i ++)
{
sumCol[j] += convert.ToInt32(datatable1.Rows[i][j]);
}
}

热点排行