我将学生成绩存储在表格中,如下所示:
StudentID | CourseID | TermID | Grade
1 | 1 | 1 | 10
1 | 2 | 1 | 12
1 | 3 | 1 | 9
1 | 4 | 1 | 5
1 | 5 | 1 | 19
1 | 1 | 2 | 11
前 3 列是外键。 我需要在 DataGridView 中为某个学生显示此数据,例如:
_____|Course1|Course2|Course3|
Term1| 10 | 15 | 24 |
Term2| 12 | 30 | 50 |
我怎样才能实现这一目标?我应该更改数据模型吗?
编辑添加了一些示例数据。 下面的查询可以工作,但我该怎么办:
将 TermID 替换为结果中相应的名称。
类(class) ID 也是如此,选择所有可用类(class)而不是写入其 ID([1]、[2]...)
选择* 从 ( 选择 [成绩]、[学期 ID]、[类(class) ID] 来自学生 ID = 1 的年级 ) AS 源 枢 ( 最大([等级]) FOR [类(class)ID] IN ([1], [2], [3], [20]) ) 作为枢轴
最佳答案
您需要将 DataTable 绑定(bind)到 DataGridView。也许您需要使用 SQL 构建数据透视表。
SELECT [Term], [Course1], [Course2], [Course3]
FROM (SELECT * FROM [Grades]) AS [SourceTable]
PIVOT (MAX([Grade])
FOR [Term]
IN ([Course1], [Course2], [Course3]))
AS [PivotTable])
ORDER BY [Term] ASC
编辑如果你说字段是外键,那么你当然需要在它们上加入相应的表。
关于c# - 在 DataGridView 中显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20679601/