如何显示每个用户的数据?

时间:2014-05-14 01:04:33

标签: c# database webmatrix

我已经让这个网页上的老师可以将标记上传给每个学生。在那之后,老师应该能够看到每个学生的表格都有其尊重的标记。我的问题是我无法将每个标记组织给其尊敬的学生。它向我展示了每个学生以及每个学生重复过来的所有上传标记。

以下是显示标记的网页:

@{
 Layout = "~/_SiteLayout.cshtml";

 var galleryId = UrlData[0].AsInt();
  var db = Database.Open("PhotoGallery");
   var subject = db.QuerySingle("SELECT Course FROM Subjects WHERE Sub_Id = @0", galleryId);
   var people = db.Query("SELECT * FROM UserProfiles WHERE Course = @0", subject.Course);
   var notas = "SELECT * FROM Notas INNER JOIN UserProfiles ON Notas.UserId = UserProfiles.UserId WHERE Notas.Sub_Id = @0";
}

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>

     <div class="aa_2 check">
    <div class="aa_3 check">

        <table class="check table_not">
            <tr class=" arrow2">
                <th>STUDENTS</th>
                <th>STUDENT´s MARK</th>
            </tr>

            @foreach(var users in people){
                <tr class="arrow">

                    <td>@users.Nombre @users.Apellido</td>
                    <td>
                    @foreach (var nott in db.Query(notas, galleryId)){
                        @nott.Nota
                    }
                    </td>
                </tr>
            }

        </table>


        </ul>
        </div>
         </div>

</body>
</html>

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

你的嵌套foreach循环:

  @foreach (var nott in db.Query(notas, galleryId)){
     @nott.Nota
  }

看起来它贯穿数据库中的每个标记并将其打印到学生的td。您需要使用where / if类型语句使其仅为该学生打印标记。顺便说一句,你的变量名称由于某种原因是不可理解的。

答案 1 :(得分:0)

安德鲁是对的。你的notas sql不正确。请尝试以下方法。

首先改变:

    var notas = "SELECT * FROM Notas INNER JOIN UserProfiles ON Notas.UserId = UserProfiles.UserId WHERE Notas.Sub_Id = @0";

要:

    var notas = "SELECT * FROM Notas WHERE Notas.UserId = @1 AND Notas.Sub_Id = @0"

其次改变:

    foreach (var nott in db.Query(notas, galleryId)){

为:

    foreach (var nott in db.Query(notas, galleryId, users.UserId)){

此刻我离开了我的开发机器,所以你可能不得不在最后一个foreach语句中的users.UserId前放一个&符号(@)。