Its a completly different direction but I would again suggest changing it to a DataTable instead of a class where your doing so much coding. Also there are just so many advantages as I pointed out above, specially when you want to do things such as work with many student records at a time.
'Creating a new record
Dim row as myTable.NewRow
row("ClassID ") = intNewId
row("StudentID") = intStudentId
row("Grade") = strGrade
row("Exercise") = strExercise
myTable.Rows.Add(row)
'Displaying all records
DataGridView1.DataSource = myTable
Loading the records from a file is as simple as
myTable.LoadXml("MyFile")
'Saving
myTable.WriteXml("MyFile")
Sorting, Searching and filtering can be done by any column in the table
'Show all student records for a specified class id
myTable.DefaultView
myTable.Filter = "ClassId = " & intClassId
Updating a record
Dim row As DataRow
row = myTable.FindByStudentId(123)
row("Grade") = A+ 'New grade
'Displaying and printing reports
Dim Report As MyReportName
Report.DataSource = myTable
report.PrintToPrinter(1, False, 0, 0)
Plus working with typed datasets give you automatic validation on datatypes, ability to set default values, limit string length etc