【发布时间】:2019-03-22 03:12:10
【问题描述】:
这是我在 C# 中的课程之一:
public class Courses
{
[DataMember]
public string SchoolName { get; set; }
[DataMember]
public string MajorName { get; set; }
[DataMember]
public List<string> Course { get; set; }
public Courses()
{
Course = new List<string>();
}
}
对于每个专业,都有一个班级列表。
在我的数据库中,我有三个表,分别代表学校、专业和课程,并加入了外国 leys。一个简单的 SQL 表来读取它们将是给定学校的:
SELECT
major.MajorName,
course.CourseName
FROM school
INNER JOIN major ON major.MajorID = course.MajorID
WHERE school.SchoolName = @SchoolName AND major.SchoolNameID = school.SchoolNameID GROUP BY major.MajorName;
因此,基于此,我预计数据如下。 (多个专业名称,每个专业有多个课程)
MajorName CourseName
Science SC101
Science SC102
Science SC500
Math MA100
Math MA200
ENGLISH EN450
我可以填充我一开始派生的类的最佳方法是什么? 我在数据库读取查询中的类定义是:
List<Courses> majorclasses = new List<Courses>()
我可以手动管理数据以填充类,方法是读取不同的专业名称,然后在循环中为每个专业名称填充每个课程。
(pheudo code)
List<string> distinctMajors = majorClasses.Disticnt("majorNames").ToList()
foreach major in distinctMajors
{
course.Add(courseName)
}
还有其他更好的方法来实现这一点吗?
【问题讨论】:
-
如果你调整你的原始sql查询以你想要的方式显示会更简单。
-
您的 foreach 循环似乎复制了紧邻其上方的 LINQ。只有
course已经包含信息才有意义。 -
顺便说一句,您如何阅读查询结果? SqlDataReader?
-
嗨 SILENT 1:阅读 SQL 表以填充我的班级的最佳方法是什么?我想阅读列表列表,但我不知道如何在 SQL 中执行此操作。有什么帮助吗?
-
是的,我正在使用 SQLdataReader 阅读。