目前,我从数据库中提取所需信息并将其存储为数组的方法很有效,但是当我单独写出来时,它相当繁琐。
有没有办法可以从所需的列中读取所有信息并将其递增直到它结束? (我想象一个for循环)
所以我连接到我的数据库,然后选择我需要的信息:
One = Convert.ToInt32(dTable.Rows[0]["Day"].ToString());
Two = Convert.ToInt32(dTable.Rows[1]["Day"].ToString());
Cost1 = Convert.ToInt32(dTable.Rows[0]["Cost"].ToString());
Cost2 = Convert.ToInt32(dTable.Rows[1]["Cost"].ToString());
然后我将数据存储为整数:
Total1 = Cost1 + Cost2;
Total2 = One + Two;
Overall = Total1 - Total2;
结果有效,但我觉得好像可以通过for循环来改进它,我尝试使用for循环,但它只取出了最后的结果
for (int i = 0; i < dTable.Rows.Count; i++)
{
int Day = Convert.ToInt32(dTable.Rows[i]["Day"]);
lblTest.Text = Day.ToString();
}
最后的结果是8000,总的来说,合并后的结果应该是30,000左右,但它只取最后一个结果,而不是添加每个结果。
答案 0 :(得分:0)
最后一行代码会在每次迭代中覆盖lblTest.Text
,因此您只能获得最后一个值。
您可以使用LINQ解决问题,并大大缩短这一点。对于列的类型,您必须相应地调整它:
var rows = dt.Rows.Cast<DataRow>();
var total1 = rows.Select(x => x.Field<decimal>("Cost")).Sum();
var total2 = rows.Select(x => x.Field<int>("Day")).Sum();