将MySQL数据读入循环

时间:2015-03-13 00:18:37

标签: c# mysql

目前,我从数据库中提取所需信息并将其存储为数组的方法很有效,但是当我单独写出来时,它相当繁琐。

有没有办法可以从所需的列中读取所有信息并将其递增直到它结束? (我想象一个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左右,但它只取最后一个结果,而不是添加每个结果。

1 个答案:

答案 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();