如何根据SQL

时间:2016-04-15 06:43:12

标签: asp.net-mvc ado.net-entity-data-model

在数据库中,我有一个表Grade(stGrade, ndGrade, rdGrade, Avg)

如何在asp.net项目中计算AvgstGrade, ndGrade, rdGrade可以为null。

示例,如果Grade(80, 90, null)然后Avg = 85.如果Grade(80, 90, 100)Avg = 90。

在视图中,我的代码:

@foreach (var item in Model.Grades){
        <tr>
            <td>@item.stGrade</td>
            <td>@item.ndGrade</td>
            <th>@item.rdGrade</th>
            <th>@item.Avg</th> 
        </tr>
    }

在控制器中:

 public ActionResult Result()
    {
        db = new GradeManagementEntities();
        Student st = db.Students.Find(Session["id"].ToString());
        return View(st);
    }

我如何使用Average()?在课堂上,对吗?

public Nullable<double> stGrade { get; set; }
    public Nullable<double> ndGrade { get; set; }
    public Nullable<double> rdGrade { get; set; }
    public Nullable<double> Avg{get; set;}
    public virtual Student Student { get; set; }

但我不知道如何使用它。

1 个答案:

答案 0 :(得分:0)

public ActionResult Result()
{
    db = new GradeManagementEntities();
    Student st = db.Students.Find(Session["id"].ToString());
foreach(var s in st)
{
int total=0,avg=0;
if(s.ndGrade != null)
{
total++;
avg+=s.ndGrade;
}
if(s.stGrade!= null)
{
total++;
avg+=s.stGrade;
}
if(s.rdGrade!= null)
{
total++;
avg+=s.stGrade;
}
if(total>0)
{
s.avg= avg/total;
}
}
return View(st);