【问题标题】:How to get the total of a dataset?如何获得数据集的总数?
【发布时间】:2018-11-20 19:19:07
【问题描述】:

如何将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 页面并在标签集中显示数据?

【问题讨论】:

  • 您是否有特殊原因要使用数据集而不是实体框架?

标签: c# asp.net dataset


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多