user1050667
user1050667

Reputation: 453

How to retrieve the data from one object in another object?

I create 3 classes then those 3 classes's object create in another class. Now I want to read the data from the database. My code is: I am retrieving the data from the database and call from the combo box.

       SqlConnection conn = MyDB.GetConnection();
       string selectStm = "SELECT c.CourseID,en.Score,s.StudentID FROM EnrollmentTable en,Course c,Student s WHERE en.StudentID = s.StudentID AND en.CourseID = c.CourseID";

       SqlCommand command = new SqlCommand(selectStm, conn);
       //command.Parameters.AddWithValue("@StudentID", StudentID);


       List<StudentScore> aStudentScore = new List<StudentScore>();

       StudentScore score = null;



       try
       {
           conn.Open();
           SqlDataReader reader = command.ExecuteReader();


           Enrollment enr = new Enrollment();

           while (reader.Read())
           {
               score = new StudentScore();



               score.EnrollmentData.StudentData.StudentID = reader["StudentID"].ToString();//Here is the problem.
               score.EnrollmentData.CourseData.CourseID = reader["CourseID"].ToString();//Here is the problem.

               score.Score = Convert.ToInt32(reader["Score"]);



               aStudentScore.Add(score);
           }

           reader.Close();
           return aStudentScore;
       }
       catch (SqlException ex)
       {
           throw ex;
       }
       finally
       {
           conn.Close();
       }

It doesn't take any value....How can I do it?

Upvotes: 0

Views: 367

Answers (1)

Holger Brandt
Holger Brandt

Reputation: 4354

If your SELECT statement is not returning any rows, then there is a problem with your data. Either the EnrollmentTable.StudentID doesn't match any records in the Student table or EnrollmentTable.CourseID doesn't match any courses in the Course table.

In any case, I tried to simplify the code so it would be easier to read:

public class Student
{
    string studentID = string.Empty;
    public string StudentID
    {get { return studentID;}
     set { studentID = value;}}
};

public class Course
{
    string courseID = string.Empty;
    public string CourseID
    {get { return courseID;}
     set { courseID = value;}}
};

public class Enrollment
{
    Student studentData = new Student();
    public Student StudentData
    {get { return studentData;}
     set { studentData = value;}
    }
    Course courseData = new Course();
    public Course CourseData
    {get { return courseData; }
     set { courseData = value; }}
};

public class StudentScore
{
    Enrollment enrollmentData = new Enrollment();
    public Enrollment EnrollmentData
    {get { return enrollmentData;}
     set { enrollmentData = value;}}

    int score = 0;
    public int Score
    {get {return score;}
     set {score = value;}}
};

public List<StudentScore> getScoreList()
{
    List<StudentScore> aStudentScore = new List<StudentScore>();
    StringBuilder tmpSQL = new StringBuilder();
    tmpSQL.Append("SELECT c.CourseID, en.Score, s.StudentID ");
    tmpSQL.Append("FROM EnrollmentTable en ");
    tmpSQL.Append("       INNER JOIN Student s ON en.StudentID = s.StudentID ");
    tmpSQL.Append("       INNER JOIN Course c ON en.CourseID = c.CourseID ");
    try
    {using (SqlConnection conn = MyDB.GetConnection()){
       conn.Open();
       using (SqlCommand command = new SqlCommand(tmpSQL.ToString(), conn)){
         using (SqlDataReader reader = command.ExecuteReader()){
           while (reader.Read())
             {
              StudentScore score = new StudentScore();
              score.EnrollmentData.StudentData.StudentID = reader["StudentID"].ToString();
              score.EnrollmentData.CourseData.CourseID = reader["CourseID"].ToString();
              score.Score = Convert.ToInt32(reader["Score"]);
              aStudentScore.Add(score);
              };
            };
         };
      };
    }
    catch (Exception ex)
    {throw ex;}
    return aStudentScore; 
}

Upvotes: 1

Related Questions