Я пытаюсь добавить последний штрих к проекту, над которым я работаю, и в настоящее время пытаюсь изменить созданную мной функцию. Особенность заключается в том, что если студент сдал экзамен, он может просматривать результаты. Тем не менее, я хочу создать заявление if else, которое по сути: если экзамен был сдан и сдан, они перенаправляются на страницу, на которой отображаются результаты конкретного экзамена. В противном случае, в верхней части страницы возвращается сообщение о том, что «этот экзамен еще не завершен».
Текущий код, который у меня есть (с помощью кнопки на странице):
protected void btnViewPrevExam_Click(object sender, EventArgs e)
{
Session["intExaminationID"] = ddlExamination.SelectedValue;
Int32 int32StudentID = Convert.ToInt32(Session["StudentID"]);
Session["int32StudentID"] = Convert.ToInt32(int32StudentID);
// Define the ADO.NET connection object.
SqlConnection objSqlConnection = new SqlConnection(WebConfigurationManager.ConnectionStrings["OPT"].ConnectionString);
// Develop the SQL call.
// Develop the SQL call.
String strSQL = "";
strSQL = "SELECT AnswerID, Question, OptionA, OptionB, OptionC, OptionD, CorrectAnswer, Answer ";
strSQL += " FROM Question, Answer, Examination, Student ";
strSQL += " WHERE Examination.ExaminationID = " + ddlExamination.SelectedValue;
strSQL += " AND Student.StudentID = " + int32StudentID;
strSQL += " AND Answer.QuestionID = Question.QuestionID ";
strSQL += " AND Answer.StudentID = Student.StudentID ";
strSQL += " AND Examination.ExaminationID = Question.ExaminationID ";
// Create the SQL command object.
SqlCommand objSqlCommand = new SqlCommand(strSQL, objSqlConnection);
// Retrieve the row from the table.
objSqlConnection.Open();
SqlDataReader objSqlDataReader = objSqlCommand.ExecuteReader();
objSqlDataReader.Read();
if (strSQL != null)
{
objSqlDataReader.Close();
objSqlConnection.Close();
Response.Redirect("StudentExamResults.aspx");
}
else
{
this.Master.MessageForeColor = System.Drawing.Color.Red;
this.Master.Message = "The selected examination has not been completed.";
}
}
В настоящее время эта кнопка позволяет отправлять учащегося на страницу с результатами экзамена независимо от того, был ли экзамен завершен или нет. Это связано со строкой «if (strSQL! = Null)», и она никогда не будет нулевой, поскольку вызов SQL был выполнен и заполнен. Я пробовал другие идеи, а также выполнял objSqlDataReader для AnswerID, но он не работал должным образом. Это небольшая дополнительная функция, которую я хотел бы добавить к этому проекту, о которой я подумал, и был бы очень рад, если бы смог найти помощь в выяснении того, что я делаю неправильно. Заранее спасибо!