我从SQL Server中提取数据,在C#中我添加了一列Total和行的总和。但是,我的专栏不断加倍,我正在使用的代码是:
DataSet ds = new DataSet();
ad.Fill(ds);
ds.Tables[0].Columns.Add("Total",typeof(int));
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
ds.Tables[0].Rows[i][ds.Tables[0].Columns.Count - 1] = "0";
for (int j = 1; j < ds.Tables[0].Columns.Count; j++)
{
int Value = Convert.ToInt32(ds.Tables[0].Rows[i][ds.Tables[0].Columns.Count - 1]);
ds.Tables[0].Rows[i][ds.Tables[0].Columns.Count - 1] = Value + Convert.ToInt32(ds.Tables[0].Rows[i][j]);
}
}
我的结果的一个例子是:
Products ColA ColB ColC Total
ProdA 5 2 0 14
ProdB 0 0 0 0
ProdC 2 2 3 14
ProdD 1 0 1 4
我在C#循环中做错了什么?谢谢
答案 0 :(得分:1)
代码评论在这里有点皱眉。但是,我认为你的问题是第二个for
循环。在每一行的末尾,您将总列与自身相加。也许它应该是:
for (int j = 1; j < ds.Tables[0].Columns.Count - 1; j++)
注意结束循环的条件中的 -1 位。另外,我猜你是故意排除第一列,否则应该开始j = 0
。