【发布时间】:2015-10-03 10:14:51
【问题描述】:
我正在开发 vb.net 中的考试成绩系统,该系统需要根据获得的分数计算学生排名。主题标记数据存储在数据库中。我正在将主题标记加载到数据表中
da.Fill(dt) 'added to a datagridview.
DataGridView1.DataSource = dt
然后在 dt 中添加新列以显示结果:
dt.Columns.Add("Obtained Marks", GetType(String))
dt.Columns.Add("Percent", GetType(String))
dt.Columns.Add("Result", GetType(String))
dt.Columns.Add("Rank", GetType(Integer))
然后通过循环遍历数据表的行和列,计算所有科目的总和并添加到获得的分数列中。
For s As Integer = 0 To dt.Rows.Count - 1
For t As Integer = 0 To dt.Columns.Count - 1
obtmarks += CDbl(dt.Rows(s).Item(t))
Next
dt.Rows(s)("Obtained Marks") = obtmarks
dt.Rows(s)("Result") = "PASS"
dt.Rows(s)("Rank") = 'RANK OF STUDENT
Next
如何根据数据表列“获得的分数”中包含的总分计算学生的排名/位置。 IE。 成绩为 436 的学生 Rank 应为 1 成绩为 429.5 的学生排名应为 2 学生成绩412 Rank应该是3 ....
以此类推,直到记录中的所有行。 (附图)
如果数据表有任何功能可以在这里提供帮助,或者我如何在循环中添加逻辑来计算学生的排名并在排名列中添加值。谢谢
【问题讨论】:
-
您可以在 DataView 上进行排序。我的意思是排序发生在不影响网格当前顺序的对象上。
-
是的,我知道 datagridview 排序,我已经提到我想保留可见的行,因为这是必不可少的,因为学生在该课程中按“Roll No”的顺序显示。必须在排名列中填写他们的排名值。
-
我不是在谈论对 DataGridView 进行排序。我认为您可以根据获得的标记从您的 DataTable 中构建一个名为 DataView 的新对象,然后将 Rank 的值设置为您的表,查看此 DataView 的顺序。
-
哦,谢谢,我会试试这个并回复。
标签: vb.net datatable vb6 datagridviewcolumn