所以,这就是我有一个包含超过 100,000 条记录的数据库的问题。我需要使用 MVC 3 创建一个网站,该网站将显示我需要的 4 个重要字段,类似于使用切片器或数据透视表时 excel 所做的方式,因此我工作中的老员工将在网站上看到他们习惯的相同格式. 当前的工具是一个 excel 数据透视表,它允许用户根据用户需要查看的细节来扩大或缩小区域。
现在数据透视表看起来像这样
区域
+++ 程序
+++++子程序
+++++++++++++项目
如果我的滑块扩展图不好,我很抱歉**
我使用的数据库和编码系统是 MS SQL SERVER 2008 R2 和带有 MVC 3 的 ASP.net。所以我需要做的是从区域开始找到包含尚未列出的区域的不同记录并列出它们按降序排列。
例子
1区
区域 2
3区等...
然后在找到所有不同的区域后,我需要为每个部分显示所有不同的程序、子程序和项目。我是 MVC 新手,我现在只知道如何使用 html 帮助器 displayFor 来显示一个包含数据库中每条记录的列表。
像这样的前任。
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.AREA)
</td>
我只是对如何解决这个问题感到困惑,我应该使用 lambda 或 SQL 语句来缩小结果范围,还是他们获得所需结果的另一种方式。任何有关解决此类问题的方法的建议或教程将不亚于对这个问题的回答。我可以发布任何有帮助的代码,请询问。感谢您的时间和帮助!
现实模型
using System;
using System.Collections.Generic;
namespace DBFirstMVC.Models
{
public partial class realistic
{
public string CAF_ID { get; set; }
public Nullable<int> CC { get; set; }
public string INVESTMENT_AREA { get; set; }
public string MAJOR_PROGRAM { get; set; }
public string DIVISION { get; set; }
public string CLARITY_ID { get; set; }
public string SPA { get; set; }
public string PA { get; set; }
public string PROJECT_NAME_ORIG { get; set; }
public string PROJECT_NAME { get; set; }
public string HIA { get; set; }
public string HMP { get; set; }
public string RESOURCE_MGR { get; set; }
public string RESOURCE_TYPE { get; set; }
public string RESOURCE { get; set; }
public string PRIMARY_VENDOR { get; set; }
public string DESCRIPTION { get; set; }
public Nullable<int> CONFIDENCE_1Q { get; set; }
public Nullable<int> CONFIDENCE_2Q { get; set; }
public Nullable<int> CONFIDENCE_3Q { get; set; }
public Nullable<int> CONFIDENCE_4Q { get; set; }
public Nullable<System.DateTime> ACCOUNTING_PERIOD { get; set; }
public Nullable<decimal> VALUE { get; set; }
public int REALISTIC_PK { get; set; }
}
}
索引视图
@model PagedList.IPagedList<DBFirstMVC.Models.realistic>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
<tr>
<th>
INVESTMENT AREA
</th>
<th></th>
</tr>
@foreach (var item in Model.Distinct()) {
<tr>
<td>
@Model.Select(c => c.INVESTMENT_AREA).Distinct()
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.REALISTIC_PK }) |
@Html.ActionLink("Details", "Details", new { id=item.REALISTIC_PK}) |
@Html.ActionLink("Delete", "Delete", new { id=item.REALISTIC_PK })
</td>
</tr>
}
</table>