Комментарии в строке.
Private conString As String = "Your connection string"
Private Sub EnrollStudent(StudentID As Integer, SubjectID As Integer)
'Question Does Subject have a prerequisite?
Dim Prerequisite As Integer
Using cn As New MySqlConnection(conString)
Using cmd As New MySqlCommand("Select pre_id from subject_bsit
where subject_id = @subject_id", cn)
cmd.Parameters.Add("@subject_id", MySqlDbType.Int32).Value = SubjectID
cn.Open()
Prerequisite = CInt(cmd.ExecuteScalar)
End Using
End Using
'Answer - No, It is OK to enroll student there are no prerequisites
If Prerequisite = 0 Then
InsertEnrollment(StudentID, SubjectID)
Return
End If
'Answer - Yes there Is a prerequisite
'New Question - Has the student passed the prerequisite?
Dim PassingGrade As Integer
Using cn As New MySqlConnection(conString)
Using cmd As New MySqlCommand("Select Grade From student_subject
Where subject_id = @subject_id
And student_id = @student_id", cn)
cmd.Parameters.Add("@subject_id", MySqlDbType.Int32).Value = Prerequisite
cmd.Parameters.Add("@student_id", MySqlDbType.Int32).Value = StudentID
cn.Open()
PassingGrade = CInt(cmd.ExecuteScalar)
End Using
End Using
'Answer - Yes, student has a passing grade.
If PassingGrade > 0 Then
InsertEnrollment(StudentID, StudentID)
Else 'Answer - No, student does not have a passing grade in prerequisite.
MessageBox.Show("Student cannot enroll because of prerequisite.")
End If
End Sub
Private Sub InsertEnrollment(StudentID As Integer, SubjectID As Integer)
Dim query = "Insert Into student_subject (student_id, subjectId, Grade, Enrolled)
Values (@student_id, @subject_id, 0, 1);"
Using cn As New MySqlConnection(conString)
Using cmd As New MySqlCommand(query, cn)
cmd.Parameters.Add("@student_id", MySqlDbType.Int32).Value = StudentID
cmd.Parameters.Add("@subject_id", MySqlDbType.Int32).Value = SubjectID
cn.Open()
cmd.ExecuteNonQuery()
End Using
End Using
MessageBox.Show("Successful enrollment")
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
EnrollStudent(1235, 5)
End Sub
РЕДАКТИРОВАТЬ
Опечатка здесь ...
If PassingGrade > 0 Then
InsertEnrollment(StudentID, StudentID)
Это должно быть
If PassingGrade > 0 Then
InsertEnrollment(StudentID, SubjectID)
Второй аргумент - SubjectID