【发布时间】:2017-09-16 20:02:12
【问题描述】:
<table class="prTable">
<tr>
<th>Exercise</th>
<th>1</th>
<th>2</th>
<th>3</th>
<th>4</th>
<th>5</th>
<th>6</th>
<th>7</th>
<th>8</th>
<th>9</th>
<th>10</th>
<th>11</th>
<th>12</th>
</tr>
@for (var i = 1; i <= 3; i++)
{
<tr class="prTableRow">
@if (i == 1)
{
<td class="prExerVariNameTD">Squat</td>
}
else if (i == 2)
{
<td class="prExerVariNameTD">Benchpress</td>
}
else
{
<td class="prExerVariNameTD">Deadlift</td>
}
@for (var ii = 1; ii <= 12; ii++)
{
var getPR = "SELECT top 1 kg, rep, date FROM Test WHERE exerVariName LIKE '%Comp%' AND exercise = @0 AND rep = @1 order by kg desc";
db.Execute(getPR, i, ii);
foreach (var get in db.Query(getPR, i, ii))
{
DateTime Date = get.Date;
var finalDate = Date.ToString("MMM d, yyyy");
var weight = get.kg + "kg";
var reps = "x " + get.rep;
<td class="prTableCell" title="@finalDate">@weight @reps</td>
}
}
</tr>
}
</table>
所以,在我的数据库中,我有一堆数据,基于训练,每一行都有一个运动名称,多行可以有相同的,所有行也有重量数据和重复次数。它的作用是检查每个练习名称并选择对该练习名称所做的最高权重进行 1 次重复,然后选择 2 次,依此类推直到 12 次。所以它会显示我为每个练习名称的每次重复所做的最佳结果在如下图的表格布局中
然而,并非所有练习的每次重复都有数据是数据库,所以有些数字没有显示在图片中,深蹲行为 1,2,3,5,6,10, 12,所以缺少一些,我希望每个数字都在表头中的每个对应数字之下,所以5将位于5之下,依此类推,我想解决这个问题的方法是放入0kg没有数据的单元格,例如在深蹲行上,没有数字 4 的数据,我想在那里放 0kg,这会将 5 向前推一个单元格,它最终会低于数字 5,所以为所有人打开,以便他们都在正确的位置。
所以,对于所有不在数据库中的重复数字,我想输入 0。这是否有意义?
编辑: 数据库图片
【问题讨论】:
-
您能否将 db.Query(getPR, i, ii) 的结果存储在一个变量中并检查您是否获得了 12 次练习?从上面提到的代码中,我认为您的查询限制了记录数
-
是的,如果号码不存在,它根本不做任何事情,它只是跳到下一个号码! @NaveenKN
-
我可以看看数据是如何存储在数据库中的吗?请使用数据库图像编辑您的问题,并且您是否通过将我们获得的记录数放入变量中进行测试?
-
更新了帖子。我不知道我会怎么做,但表格的图片是这段代码给我的结果,每个单元格都是循环的结果@NaveenKN