【发布时间】:2020-11-13 11:38:11
【问题描述】:
我目前正在处理销售报告功能。我想通过输入年/月/周来生成销售报告。在我的 DAL 类中,您可以看到我编写了一个查询,显示了 2020 年的所有销售额。我在查询中对此进行了硬编码,但我想通过输入显示销售额。请看下面的图片以获得解释。用户必须通过输入月份和/或年份来选择显示。抱歉,英语不是我的母语。
This is an image of my Index view
这是我的 DAL,我目前硬编码 '01/01/2020' AND OrderDatum
public List<OrderModel> getByYear()
{
List<OrderModel> Orderlist = new List<OrderModel>();
try
{
string sql = "SELECT * FROM [Order] WHERE OrderDatum >= '01/01/2020' AND OrderDatum < '01/01/2021';";
DataSet results = ExecuteSql(sql, new List<KeyValuePair<string, string>>());
for (int x = 0; x < results.Tables[0].Rows.Count; x++)
{
OrderModel c = DatasetParser.DataSetToSpeler(results, x);
Orderlist.Add(c);
}
return Orderlist;
}
catch (Exception e)
{
throw e;
}
}
这是我的订单模型
public class OrderModel
{
public int BestellingId { get; set; }
public int KlantID { get; set; }
public DateTime Datum { get; set; }
public double Totaalprijs { get; set; }
public string Status { get; set; }
public List<ProductModel> Producten { get; set; }
public OrderModel(int bestellingId, int klantId, DateTime datum, double totaalPrijs, string status)
{
BestellingId = bestellingId;
KlantID = klantId;
Datum = datum;
Totaalprijs = totaalPrijs;
Status = status;
}
public OrderModel()
{
}
}
我在控制器中使用的唯一功能。
public IActionResult Index()
{
List<OrderModel> orders = rapport.getByYear();
return View(orders);
}
我的索引视图
@model List<OrderModel>;
<div class="text-center">
<h1 class="display-4">Welcome</h1>
</div>
<div>
<table class="table" style="background-color:aliceblue;">
<thead style="color: darkred;">
<tr>
<th>ID</th>
<th>KlantId</th>
<th>Datum</th>
<th>Status</th>
<th>TotaalPrijs</th>
</tr>
</thead>
<tbody style="">
@foreach (OrderModel order in Model) {
<tr>
<td>@Html.DisplayFor(modelItem => order.BestellingId)</td>
<td>@Html.DisplayFor(modelItem => order.KlantID)</td>
<td>@Html.DisplayFor(modelItem => order.Datum)</td>
<td>@Html.DisplayFor(modelItem => order.Status)</td>
<td>@Html.DisplayFor(modelItem => order.Totaalprijs)</td>
</tr>
}
</tbody>
</table>
【问题讨论】:
-
将 startdate 和 enddate 从视图传递到控制器,并将字符串 sql 更改为
string sql = $"SELECT * FROM [Order] WHERE OrderDatum >= {startdate} AND OrderDatum < {enddate};"; -
谢谢你我要去试试。
标签: javascript c# sql asp.net-mvc asp.net-core