private void cbEditSemester_SelectedIndexChanged(object sender, EventArgs e) { //updates buttons and links (will most likely enable) updateSemesterButtons(); //get current semester id int currentSemesterId = semesterId[cbEditSemester.SelectedIndex]; //dynamically populate semester information MySqlDataReader selectedSemester = Database.executeQuery("SELECT * FROM Semester WHERE SemesterID = '" + currentSemesterId + "';"); //only one item should be returned if (selectedSemester.Read() == true) { ctrSemesterNum.Value = selectedSemester.GetInt32(0); txtSemesterName.Text = selectedSemester.GetString(1); dtSemesterStartDate.Value = selectedSemester.GetDateTime(2); dtSemesterEndDate.Value = selectedSemester.GetDateTime(3); } selectedSemester.Close(); }
//add list of different assignment types to the given combo box using different optional filters public static void addTypes(ComboBox cbTypes, string classID, bool showCurrentClasses, string profID) { //make sure to remove all existing items cbTypes.Items.Clear(); //build where clause based on whether the filters are specified string whereClause = ""; if (showCurrentClasses == true && classID == null) { if (profID == null) { whereClause = "WHERE ClassID IN (SELECT ClassID FROM Class WHERE FinalLetterGrade IS NULL)"; } else { whereClause = "WHERE ClassID IN (SELECT ClassID FROM Class NATURAL JOIN ClassProfessor WHERE FinalLetterGrade IS NULL AND ProfId = '" + profID + "')"; } } else if (classID != null) { whereClause = "WHERE ClassID = '" + classID + "'"; } //dynamically add class grade categories to combo box MySqlDataReader types = Database.executeQuery("SELECT Type FROM GradeCategory " + whereClause + " ORDER BY Type;"); while (types.Read() == true) { if (cbTypes.Items.Contains(types.GetString(0)) == false) { cbTypes.Items.Add(types.GetString(0)); } } types.Close(); }
private void cbClass_SelectedIndexChanged(object sender, EventArgs e) { txtDesiredPercentage.ResetText(); txtCurrentGrade.ResetText(); //get current grade in class object result = Database.executeScalarQuery("SELECT CurrentGrade FROM Class WHERE ClassID = '" + classId[cbClass.SelectedIndex] + "';"); double currentGrade; if (Double.TryParse(result.ToString(), out currentGrade) == true) { txtCurrentGrade.Text = currentGrade.ToString("F4"); } //try to get percentage that final is worth result = Database.executeScalarQuery("SELECT Percentage FROM GradeCategory WHERE (Type LIKE '%Final%') AND ClassID = '" + classId[cbClass.SelectedIndex] + "';"); txtFinalExamPercentage.ResetText(); //get final exam percentage worth txtFinalExamPercentage.Text = result + ""; cbFinalLetterGrade.Items.Clear(); //populate the desired grade percentage based on a selected latter grade MySqlDataReader grades = Database.executeQuery("SELECT GradeLetter, BottomPercentage FROM GradingScaleValue WHERE ClassID = '" + classId[cbClass.SelectedIndex] + "' ORDER BY BottomPercentage DESC"); while (grades.Read() == true) { gradeLetter.Add(grades.GetString(0)); cbFinalLetterGrade.Items.Add(grades.GetString(0)); gradePerc.Add(grades.GetDouble(1)); } grades.Close(); cbFinalLetterGrade.Enabled = true; }
//method for when the selected class changes private void cbEditClass_SelectedIndexChanged(object sender, EventArgs e) { //updates buttons and links (will most likely enable) updateClassButtons(); //get current class id currentClassId = classId[cbEditClass.SelectedIndex]; //database supports multiple professors but this application only supports a single professor per class SQLiteDataReader classProf = Database.executeQuery("SELECT ProfID FROM ClassProfessor WHERE ClassID = '" + currentClassId + "';"); //read single result if (classProf.Read() == true) { int classProfId = classProf.GetInt32(0); cbClassProfessor.SelectedIndex = profId.IndexOf(classProfId); classHasProf = true; } else { classHasProf = false; cbClassProfessor.SelectedIndex = -1; } classProf.Close(); //dynamically populate class information SQLiteDataReader selectedClass = Database.executeQuery("SELECT * FROM Class WHERE ClassID = '" + currentClassId + "';"); //only one item should be returned if (selectedClass.Read() == true) { //populate form with information from database txtClassName.Text = selectedClass.GetString(1); ctrCredits.Value = selectedClass.GetDecimal(2); chkClassMonday.Checked = Convert.ToBoolean(selectedClass.GetString(3)); chkClassTuesday.Checked = Convert.ToBoolean(selectedClass.GetString(4)); chkClassWednesday.Checked = Convert.ToBoolean(selectedClass.GetString(5)); chkClassThursday.Checked = Convert.ToBoolean(selectedClass.GetString(6)); chkClassFriday.Checked = Convert.ToBoolean(selectedClass.GetString(7)); //load semester if not null if (selectedClass.IsDBNull(8) == false) { cbSemester.SelectedIndex = semesterId.IndexOf(selectedClass.GetInt32(8)); } else { cbSemester.SelectedIndex = -1; } dtClassStartTime.Value = selectedClass.GetDateTime(9); dtClassEndTime.Value = selectedClass.GetDateTime(10); //class location txtClassLocation.Text = selectedClass.GetValue(11).ToString(); //dynamically add letter grades to drop down list SQLiteDataReader letterGrades = Database.executeQuery("SELECT GradeLetter FROM GradingScaleValue WHERE ClassID ='" + currentClassId + "' ORDER BY BottomPercentage DESC;"); cbFinalLetterGrade.Items.Clear(); while (letterGrades.Read() == true) { cbFinalLetterGrade.Items.Add(letterGrades.GetString(0)); } letterGrades.Close(); //determine whether the final letter grade is null (if it is, assume the class // is not finished) if (selectedClass.IsDBNull(14) == false) { chkClassFinished.Checked = true; cbFinalLetterGrade.Text = selectedClass.GetString(14); } else { chkClassFinished.Checked = false; cbFinalLetterGrade.SelectedIndex = -1; } } selectedClass.Close(); }
public void loadEvent(int eventNum) { //dynamically get information about the selected event SQLiteDataReader events = Database.executeQuery("SELECT * FROM Event WHERE EventID = '" + eventNum + "';"); //there should only be one event returned while (events.Read() == true) { //populate form with information retrieved from database txtEventTitle.Text = events.GetString(1); txtEventDescription.Text = events.GetValue(2).ToString(); txtLocation.Text = events.GetValue(3).ToString(); dtEventStartDate.Value = events.GetDateTime(4); dtEventStartTime.Value = events.GetDateTime(4); dtEventEndDate.Value = events.GetDateTime(5); dtEventEndTime.Value = events.GetDateTime(5); chkAllDayEvent.Checked = Convert.ToBoolean(events.GetString(6)); chkAllDayEvent_CheckedChanged(null, null); } events.Close(); //query to get information if a graded assignment SQLiteDataReader graded = Database.executeQuery("SELECT * FROM GradedAssignment WHERE EventID = '" + eventNum + "';"); //clear the existing grade information txtEventGrade.ResetText(); txtEventGradeTotalPoints.ResetText(); //get the grade information from the database (there should only be one result row returned) if (graded.Read() == true) { chkGradedAssignment.Checked = true; chkGradedAssignment_CheckedChanged(null, null); //set the name and grade information for the event txtAssignmentName.Text = graded.GetString(1); txtEventGrade.Text = graded.GetValue(2).ToString(); txtEventGradeTotalPoints.Text = graded.GetValue(3).ToString(); //set the current class associated with the grade assignment cbEventClass.SelectedIndex = currentClassId.IndexOf(graded.GetInt32(4)); //add possible types to choose from based on current class Util.addTypes(cbEventType, currentClassId[cbEventClass.SelectedIndex].ToString(), false, null); //set the current event type for the drop down list cbEventType.Text = graded.GetString(5); } else { //reset all parts of the graded assignment portion of the event chkGradedAssignment.Checked = false; chkGradedAssignment_CheckedChanged(null, null); txtAssignmentName.ResetText(); cbEventClass.SelectedIndex = -1; cbEventType.SelectedIndex = -1; } graded.Close(); //set the selected event to the event with the given id (used if passing in event id // into constructor when an event is double clicked) cbEvent.SelectedIndex = eventId.IndexOf(eventNum); //update save and delete buttons (will now be enabled since we have selected an event) updateButtons(); }