public void updateGrade(String id, String cnum, String grade) { List <String> itemList = new List <String>(); Student stud = new Student(); itemList = FetchList(TStudent, "*", "id = " + id); String courses = itemList[4]; String grades = itemList[5]; courses = courses.Remove(courses.IndexOf(cnum), cnum.Length + 1); grades += cnum + "$" + grade + "#"; stud.decrypt_grades(grades); stud.calc_avg(); SimpleUpdate(TStudent, "courses = '" + courses + "', grades = '" + grades + "', average = " + stud.AVERAGE, "id = " + id); stud = getStudent("id = " + id); DataTable gdt = FetchTable(TCourse, "Course_Number", "Accademic_Year = " + (int)stud.YEAR + " and Semester = " + (int)stud.SEMESTER + " and (Department = 0 or Department = " + (int)stud.DEPT + ")").Tables[TCourse]; List <String> listok = new List <String>(); for (int i = 0; i < gdt.Rows.Count; i++) { listok.Add(gdt.Rows[i].ItemArray[0].ToString()); } for (int i = 0; i < listok.Count; i++) { Boolean flag = false; for (int j = 0; j < stud.GRADES.Count; j++) { if (stud.GRADES[j].CNUM == listok[i]) { flag = true; break; } } if (flag == false) { return; } } stud.Advance(); SimpleUpdate(TStudent, "_year = " + (int)stud.YEAR + ", Semester = " + (int)stud.SEMESTER, "id = " + id); }