AhmedHosny96 Ответов: 1

Расчет процента и отображение правильного ответа для веб-сайта онлайн - экзамена в ASP.NET


привет всем я нахожусь на сайте онлайн экзамена project in asp.net я хочу вычислить процент , чтобы отобразить нет правильных ответов , а окончательный счет(умножение [отметок] и нет правильных ответов) вот мой код он отображает только правильные ответы, а не неправильные ответы


СПАСИБО!

Что я уже пробовал:

protected void examsubmit_Click(object sender, EventArgs e) {

    DataTable dt = new DataTable();
    string sqlStatement = "SELECT * FROM [Biology]";



      SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["RegistrationConnectionString2"].ConnectionString);

        using (SqlCommand cmd = new SqlCommand(sqlStatement, con))
        {
            cmd.CommandType = CommandType.Text;
            using (SqlDataAdapter da = new SqlDataAdapter(cmd))
            {
                da.Fill(dt);

                if (dt.Rows.Count > 0)
                {
                    int index = 0;
                    foreach (GridViewRow row in grdquestions.Rows)
                    {
                        RadioButton rb1 = (RadioButton)row.FindControl("Option1");
                        RadioButton rb2 = (RadioButton)row.FindControl("Option2");
                        RadioButton rb3 = (RadioButton)row.FindControl("Option3");
                        RadioButton rb4 = (RadioButton)row.FindControl("Option4");
                        //
                        int marks = Convert.ToInt32(dt.Rows[index]["Marks"]);
                        if (rb1 != null || rb2 != null || rb3 != null || rb4 != null)

                            if (rb1.Text == dt.Rows[index]["Answer"].ToString())
                            {
                                //do something if matched

                                rb1.Checked = true;


                            }

                            else if (rb2.Text == dt.Rows[index]["Answer"].ToString())
                            {
                                //do something if matched

                                rb2.Checked = true;


                            }

                            else if (rb3.Text == dt.Rows[index]["Answer"].ToString())
                            {
                                //do something if matched

                                rb3.Checked = true;


                            }

                            else if (rb4.Text == dt.Rows[index]["Answer"].ToString())
                            {
                                //do something if matched

                                rb4.Checked = true;


                            }
                                index++;


                        int total =index * marks;
                        Label2.Text = "FinalScore is :" + total;


                          }


                        }

                    }

                }


            }

1 Ответов

Рейтинг:
1

OriginalGriff

Это потому, что вы только сказали ему, чтобы он отображал общее количество: то есть индекс * метки
И вы устанавливаете это внутри цикла, так что он всегда будет показывать только последние строки данных.

Если вы хотите показать другую информацию, вы должны добавить код, чтобы сделать это! (И, вероятно, сделать это вне цикла, который проверяет все ответы...)