如何获取数据集的总数?

时间:2018-06-11 13:56:26

标签: c# asp.net dataset

如何将dataset的总和相加并将答案返回到另一页上的标签?

业务层:

 public DataTable CreatePackingStats(DataSet dset)
        {
            using (DataManager dmgr = new DataManager())
            {
                DataTable target = dset.Tables[0]; 
                DataTable actual = dset.Tables[1]; 

                DataColumn[] cols = new DataColumn[1];
                cols[0] = actual.Columns["Hour"];
                actual.PrimaryKey = cols;

                DataTable final = new DataTable(); // This will combine tartget & actual tables

                // Create table columns
                foreach (DataColumn col in target.Columns)
                {
                    final.Columns.Add(new DataColumn(col.ColumnName, col.DataType));
                    if (col.ColumnName.Contains("Target"))
                    {
                        // Add an equivilant actual column
                        string newColumnName = col.ColumnName.Replace("Target", "Actual");
                        final.Columns.Add(newColumnName, col.DataType);

                    }
                }
                //// Add rows to new table
                foreach (DataRow row in target.Rows)
                {
                    string key = row["Hour"].ToString();

                    DataRow newRow = final.Rows.Add();
                    // Store column value
                    foreach (DataColumn col in final.Columns)
                    {
                        if (col.ColumnName.Contains("HOUR") || col.ColumnName.Contains("Target"))
                        {
                            newRow[col.ColumnName] = row[col.ColumnName];
                        }
                        else
                        {
                            // Find actual data
                            DataColumn actColumn = actual.Columns[col.ColumnName] as DataColumn;
                            if (actColumn == null)
                            {
                                newRow[col.ColumnName] = 0;
                            }
                            else
                            {
                                if (string.IsNullOrEmpty(actual.Rows.Find(key)[col.ColumnName].ToString()))
                                {
                                    newRow[col.ColumnName] = 0;
                                }
                                else
                                {
                                    newRow[col.ColumnName] = actual.Rows.Find(key)[col.ColumnName].ToString();
                                }
                            } 
                        }
                    }
                }
                return final;
            }


        }
    }
}

我还想知道如何检索此dataset并将其移至aspx页面并在标签集中显示数据?

1 个答案:

答案 0 :(得分:0)

如果您的数据集确实在数据库中,请使用SQL为您进行计算,而不是自己阅读所有数据并自行完成。

如果数据仅在本地内存,那么IEnumerable<>.Sum()可能是最好的方法。