2012-04-15 117 views
3

我使用(ASP + WML)创建此移动门户/应用程序时,需要生成某个学生在某个学期在某一年中所采取的课程列表。从不同表格的数据库获取数据

我有以下表格:

enter image description here

我已经从以前的页面以下参数:

string StudentId = Request.Params["StudentId"]; 
string Year = Request.Params["Year"]; 
string Semester = Request.Params["Semester"]; 
  • 的(Year)的值可以是 “2011”或“2012”。
  • Semester)的值为“第一”或“第二”或“夏季”。
  • StudentId)的值是从学生表中的id之前提取的数字。

作为表内数据的一个示例。

enter image description here

我在这里

string connectionString = @"Data Source=.\SQLEXPRESS;AttachDbFileName=|DataDirectory|\Uni.MDF;" + 
      "Integrated Security=True;User Instance=True"; 
      string queryString =" ??????????????????????????? " ; 

卡住我想获得一个页面显示,用户在注册(在某一学期)的课程。 这些信息稍后会通过URL传递到显示信息的新页面。

喜欢的东西:

First Semester 2010 
Student : Arin Rizk 

Course Name  No. of Credit  Mark 
    AAA    3   65 
    BBB    3   23 
    CCC    3   65 
    DDD    3   58 
    EEE    3   70 

Your GPA for this semster is 3.12 

编辑

我怎么会在打印后的页面中的信息?

我该怎么办?我试图创建一个视图,但我不知道为什么它不工作。

我无法更改表或DB结构。

预先感谢您。

+0

请不要删除所有的问题的内容,将其删除。 – 2012-04-16 21:54:50

回答

3
select st.firstname + ' ' + st.lastname,se.year, c.coursename,c.credits,ri.mark 
from students st 
inner join RegisteredIn ri on ri.studentid=st.id 
inner join semester se on se.id=ri.semesterid 
inner join Courses c on c.id=se.courseid 

此查询会给你名字,年份,coursename,学分和标记。

您需要编写另一个gpa计算查询,或者您可以使用上面获得的数据在您的web服务器上计算。

0

的课程列表,你可以这样做:

Select Courses.CourseName, Courses.NumberOfCredits, RegisteredIn.Mark 
From dbo.Courses Inner Join dbo.RegisteredIn On Courses.id = RegisteredIn.CourseID 
    Inner Join dbo.Semester On RegisteredIn.SemesterID = Semester.id 
Where RegisteredIn.StudentID = '20111' AND 
    Semester.Title = 'First' AND 
    Semester.Year = 2011 
Order By Courses.CourseName 
相关问题