0

我在 asp.net 上用 c# 创建一个 web 项目。我正在网页上显示来自数据库的数据。我有一个数据库表,其中一列(月份)显示客户在哪个月份下订单,另一列显示库存 ID。每个月和 stockid 都会显示很多次,因为不同的客户每个月都会下订单。我想汇总特定库存每个月的数量列中的订单数量。目前我只能在循环时显示每个月的一个数量,但想计算并显示每个月的总数。

    public static ArrayList GetActuals()
    {
        String strQuery = "Select * from Actual where Year = 2013";
        Recordset rs = DatabaseManager.GetRecordset("DB", strQuery);

        bool bFound;

        ArrayList Actuals = new ArrayList();
        while (rs != null && rs.Read())
        {
            Actual A = new Actual();
            A.strStockNo = rs.GetFieldValueString("Stock_No").Trim();
            A.nMonth = rs.GetFieldValueInt("Month");
            A.nYear = rs.GetFieldValueInt("Year");
            A.nCustomer = rs.GetFieldValueInt("Customer");
            A.nQuantity = (float)rs.GetFieldValueDouble("Quantity");
            Actuals.Add(A);

        }

        if (rs != null) rs.Close();
        return Actuals;

    }



    float LoadActuals(ArrayList actual, String strstock, int year, int month)
    {

        foreach (Actual a in actual)
        {

            if ((a.strStockNo == strstock) && (a.nYear == year) && (a.nMonth == month))
            {
                return a.nQuantity;
            }


        } return 0;
    }

然后当我显示每个月的数量时......

            int Month;
            for (Month = 1; Month < 13; Month++)
            {

                    float totq = LoadActuals(Act, p.strStockNo, yr, Month);

                    TableCell cell = new TableCell();
                    cell.Text = string.Format("{0}", totq);
             }

这仅显示我想要总数的每个月的一个 totq。这是怎么做到的?

4

1 回答 1

0

这么多问题,但......很快。

float LoadActuals(ArrayList actual, String strstock, int year, int month)
{
    float quantity = 0;
    foreach (Actual a in actual)
    {
        if ((a.strStockNo == strstock) && (a.nYear == year) && (a.nMonth == month))
        {
            quantity += a.nQuantity;
        }
    }
    return quantity;
}
于 2013-04-02T22:31:12.957 回答