Member 12186498 Ответов: 1

Как рассчитать результат в экзаменационной системе в ASP.NET VB


Мы разрабатываем экзаменационную систему, но наш результат не вычисляется . я не знаю, в чем проблема, но есть ли кто-нибудь, кто может удалить ошибки.
вот мой дизайнерский код:-
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="MainExam.aspx.vb" Inherits="Examination_system1.MainExam" %>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Examination System | Exam</title>
    <link href="../CSS/buttons.css" rel="stylesheet" type="text/css" />
    <link href="../CSS/Content.css" rel="stylesheet" type="text/css" />
    <link href="../CSS/Exam.css" rel="stylesheet" type="text/css" />
    <link href="../CSS/global.css" rel="stylesheet" type="text/css" />
    <link href="../font-awesome/css/font-awesome.css" rel="stylesheet" type="text/css" />
    <link href="../CSS/Input.css" rel="stylesheet" type="text/css" />
</head>
<script type = "text/javascript"  language="javascript" >
    var tim;

    var min = 10;
    var sec = 60;
    var f = new Date();
    function f1() {
        f2();


    }
    function f2() {
        if (parseInt(sec) > 0) {
            sec = parseInt(sec) - 1;
            document.getElementById("Label5").innerHTML = "Time Left : " + min + ": " + sec + " Seconds";
            tim = setTimeout("f2()", 1000);
        }
        else {
            if (parseInt(sec) == 0) {
                min = parseInt(min) - 1;
                if (parseInt(min) == 0) {
                    sec = 60;
                    document.getElementById("Label5").innerHTML = "Time Left :" + min + " :" + sec + " Seconds";
                    tim = setTimeout("f2()", 1000);

                }
                else {
                    clearTimeout(tim);
                    location.href="/KB/answers/StudentResult.aspx";
                }
            }

        }
    }
    </script>

<body onload ="f1()">
    <form id="form1" runat="server">
    <div>
        <div class="header">
            <div class="logo">
                <a href="#"> Examination System</a>
            </div>
        </div>
    </div>
    <div class="container">
   
        <div class="PaperDetail">
            <h2>
                <asp:Label ID="Label2" runat="server" Text="{Exam Heading}"></asp:Label>
            </h2>
            <p style=" margin-right : 10px">
                <asp:Label ID="Label3" runat="server" Text="{Set BY }"></asp:Label><br />
                <asp:Label ID="Label4" runat="server" Text="Max Minutes"></asp:Label>
                </p>
                <p style="float:right;">
                    <asp:Label ID="Label5" runat="server" Text="{Timer}" Font-Size="15pt" 
                        ForeColor="#999966"></asp:Label>
                </p>
        </div>
        </div> 
        <br />
        <br />
        <div class="questions">
           
        <center>  
            
           
            <asp:GridView runat="server" id="grd" AutoGenerateColumns="false" 
                CellPadding="3">
        <Columns>
        <asp:TemplateField HeaderText="Question">
        <ItemTemplate>
          <asp:Label ID="Label1" runat="server" Text='<%#Eval("Question_ID") %>'></asp:Label> <asp:Label ID="qstn" runat="server" Text='<%#Eval("Question") %>'></asp:Label><br /> 
            <asp:RadioButton ID="rad1" runat="server" Text='<%#Eval("Choice1") %>' GroupName="A"  Checked ="false" /><br />
            <asp:RadioButton ID="rad2" runat="server" Text='<%#Eval("Choice2") %>' GroupName="A" Checked ="false"  /><br />
            <asp:RadioButton ID="rad3" runat="server" Text='<%#Eval("Choice3") %>' GroupName="A" Checked ="false"  /><br />
            <asp:RadioButton ID="rad4" runat="server" Text='<%#Eval("Choice4") %>' GroupName="A" Checked="false" />

        </ItemTemplate>
        </asp:TemplateField>
        </Columns>
        </asp:GridView>
           
           
            
            </center><br />
            <br />

            <center><asp:Button ID="Button1" runat="server" Text="Submit"  class="btn btn-info" /></center>
        </div>
        <div class="footer">
        </div>
    </form>
</body>
</html>

What I have tried:

<pre>
and here is my code behind:

<pre>Imports System.Data.OleDb
Imports System.Timers.Timer
Imports System.Data

Public Class MainExam

    Inherits System.Web.UI.Page

    Public Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Session("Client") Is Nothing Then
            Response.Redirect("~/Login.aspx")
        End If



        Dim conn As New OleDb.OleDbConnection
        Dim cmd As New OleDb.OleDbCommand
        Dim cmd1 As New OleDb.OleDbCommand

        conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\Project\Examination_system1\Examination_system1\Db\ExamDb.accdb"
        cmd.CommandText = "select * FROM Exam_Question"
        cmd.Connection = conn
        conn.Open()
        cmd.ExecuteNonQuery()

        Dim da As New OleDbDataAdapter(cmd)
        Dim dt As New DataTable()
        da.Fill(dt)
        If dt.Rows.Count > 0 Then
            grd.DataSource = dt

            grd.DataBind()

        Else
            grd.EmptyDataText = "Empty"
        End If

        'cmd1.CommandText = "Select * from Exam_detail"
        'cmd1.Connection = conn
        'Dim rdr As OleDbDataReader = cmd1.ExecuteReader()
        'rdr.Read()
        'Label2.Text = "Subject : " & rdr("Exam_Heading").ToString()
        'Label3.Text = "Set By : " & rdr("SetBy").ToString()
        'Label4.Text = "Max. Minutes : " & rdr("Exam Timing").ToString() & "Minutes"

        'conn.Close()
    End Sub



    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
        Dim conn As New OleDb.OleDbConnection
        Dim cmd As New OleDb.OleDbCommand
        Dim cmd1 As New OleDb.OleDbCommand

        conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\Project\Examination_system1\Examination_system1\Db\ExamDb.accdb"
        Dim rw As GridViewRow

        Dim rdAns1, rdAns2, rdAns3, rdAns4 As New RadioButton
        For Each rw In grd.Rows
            Dim str As String
            rdAns1 = CType(rw.FindControl("rad1"), RadioButton)
            rdAns2 = CType(rw.FindControl("rad2"), RadioButton)
            rdAns3 = CType(rw.FindControl("rad3"), RadioButton)
            rdAns4 = CType(rw.FindControl("rad4"), RadioButton)

            If rdAns1.Checked Then
                Str = "A"
            ElseIf rdAns2.Checked Then
                Str = "B"
            ElseIf rdAns3.Checked Then
                Str = "C"
            ElseIf rdAns4.Checked Then
                Str = "D"

                cmd1.CommandText = "Insert into AnswerTable Values(@userid,@QuestionID,@Answer)"
                cmd1.Parameters.AddWithValue("@userid", Session("Client").ToString())
                cmd1.Parameters.AddWithValue("@QuestionID", rw.Cells.Count)
                cmd1.Parameters.AddWithValue("@Answer", str.ToString())

                cmd1.ExecuteNonQuery()
                MsgBox("Record added")
            End If
        Next








    End Sub

End Class

1 Ответов

Рейтинг:
0

OriginalGriff

Компиляция не означает, что ваш код верен! :смеяться:
Подумайте о процессе разработки как о написании письма: успешная компиляция означает, что вы написали письмо на правильном языке - например, на английском, а не на немецком, - а не то, что письмо содержало сообщение, которое вы хотели отправить.

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

Начните с рассмотрения того, что он делает и чем это отличается от того, что вы хотели. Это важно, потому что это дает вам информацию о том, почему он это делает. Например, если программа предназначена для того, чтобы позволить пользователю ввести число, а он удваивает его и печатает ответ, то если ввод / вывод был таким:

Input   Expected output    Actual output
  1            2                 1
  2            4                 4
  3            6                 9
  4            8                16
Тогда совершенно очевидно, что проблема заключается в бите, который удваивает его-он не прибавляет себя к себе или умножает его на 2, он умножает его на себя и возвращает квадрат входного сигнала.
Таким образом, вы можете посмотреть на код, и очевидно, что он где-то здесь:
private int Double(int value)
   {
   return value * value;
   }

Как только у вас появится идея, что может пойти не так, начните использовать отладчик, чтобы выяснить почему. Поставить точку останова на строке:
myaverage.DisplayAverage();

и запустите свое приложение. Подумайте о том, что должна делать каждая строка кода перед ее выполнением, и сравните это с тем, что она на самом деле делала, когда вы использовали кнопку "шаг вперед" для выполнения каждой строки по очереди. Он сделал то, что вы ожидали? Если да, то переходите к следующей строке.
Если нет, то почему? Чем это отличается?

Это навык, и его стоит развивать, поскольку он помогает вам как в реальном мире, так и в развитии. И, как и все навыки, он совершенствуется только при использовании!

Да, я, наверное, мог бы сказать вам, в чем "проблема" - но сделать это самому несложно, и при этом вы узнаете что-то действительно стоящее!


OriginalGriff

Да, я догадывался.
Ключевое слово здесь- "ваш". "Твой" проект последнего года. "Ваше представление.
И идея в том, что это "твоя" работа, а не моя.
У вас есть два дня, прежде чем вы должны представить его, и если это ваш последний год, вы должны быть довольно компетентны к настоящему времени: так что займитесь отладчиком и начните работать над тем, что идет не так - два дня достаточно времени для такого тривиального проекта, как этот, - а затем начните работать над тем, как это исправить.
Или вы хотите сказать, что я должен исправить это для вас за процент от всех ваших будущих доходов, учитывая, что я, по крайней мере, частично отвечал за вашу оценку?

OriginalGriff

Вы написали код; вы знаете, что он должен делать.
Вы проверили код, вы знаете, что это за ошибки.

Перестаньте тратить впустую оставшееся у вас короткое время и начните использовать отладчик для исправления своей работы! Вам потребуется больше времени, чтобы найти кого-то, кто сделает вашу работу за вас, чем у вас есть, прежде чем вы должны представить ее как свою собственную работу...

[no name]

Ух ты какая чувствительная. Если вы не можете самостоятельно отладить этот тривиальный объем кода или дать лучшее описание проблемы, кроме "это не работает", то ясно, что вы не узнали того, что должны были узнать, прежде чем взяться за свой проект последнего года. Поговорите со школой и посмотрите, сможете ли вы вернуть свои деньги.

OriginalGriff

Перестаньте пытаться найти готовое решение и посмотрите на свой код, чтобы увидеть, в чем ваша проблема: отладчик здесь, чтобы помочь вам, и это будет намного быстрее, чем пытаться убедить людей сделать вашу работу за вас!
Вы уже потратили более семи часов, пробуя этот маршрут - и если вы написали код, вы должны быть в состоянии исправить в худшем случае половину этого!