2016-05-03 2 views
-3

On onclick Ereignis der Schaltfläche, habe ich die Steuerelemente aus der Aspx-Seite abrufen, und weiter ich habe verwendet, wenn Anweisung, um zu sehen, welche Optionsfeld aktiv ist und speichern Sie den entsprechenden Wert in der Variablen selans, mit diesem selans, ich werde es mit dem Wert von versteckten Feld vergleichen, um zu finden, ob überprüft Radio Button ist die richtige Antwort oder nicht, wenn die Antwort korrekt ist, dh Wert in selans stimmt mit dem Wert in versteckten Feld (die tatsächliche Antwort) und Die Variable "count" (anfänglich mit dem Wert 0 initialisiert) wird entsprechend inkrementiert und der gesamte Code wird in die "for-Schleife" gesetzt, die bis zur Nr. 1 ausgeführt wird. der Controls in der GridView (Sie können es mit der Nummer der Frage beziehen, wie für jeden Datensatz GridView erzeugt neue Kontrolle).Wie berechne ich Noten der Online-Prüfung in C#?

Ich habe verwendete Variablen

1) totalgrid1: - von gridview1 Gesamtscore zu bekommen

2) totalgrid2: - Gesamtscore von gridview2

3) total zu erhalten: - totalgrid1 + totalgrid2 ... es ist die Gesamtnote der Prüfung

4) correct1: - Holen Sie sich die Anzahl der richtigen Antworten von gridview1

5) correct2: - die Anzahl der richtigen Antworten erhalten von gridview2

6) correct: - correct1 + correct2 ..... Gesamtzahl der richtigen Antworten durch den Benutzer

nach dem Ausführen dieses Programms Wenn ich die Prüfung mit korrekten Antworten versuche, bekomme ich "score = 6" anstelle von 4 auf der Ergebnisseite, da es nur 4 Fragen gibt und jede Frage 1 Punkt trägt. Wie kann ich dann 6 Punkte bekommen? und bekomme ich auch "Anzahl der richtigen Antworten = nichts wird angezeigt (es ist leer)" ... es sollte einen gewissen Wert zeigen.

Ich kann nicht herausfinden, wo ich Fehler mache. Unten ist mein Code. Schauen Sie sich meinen Code an. Zeigen Sie mir, wo ich Fehler mache und was ist die Lösung

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data.SqlClient; 
using System.Data; 
using System.Configuration; 


public partial class Student_Examdemo : System.Web.UI.Page 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 



    if (!IsPostBack) 
    { 
     GridView1.DataSource = GetData("SELECT top 2 Question, Option1, Option2, Option3, Option4, CorrectAns, Explanation FROM Questions"); 
     GridView1.DataBind(); 


     GridView2.DataSource = GetData("SELECT top 2 Question, Option1, Option2, Option3, Option4, CorrectAns, Explanation FROM Questions WHERE SectionId=2"); 
     GridView2.DataBind(); 

    } 
} 

private DataSet GetData(string query) 
{ 
    string conString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; 
    SqlCommand cmd = new SqlCommand(query); 
    using (SqlConnection con = new SqlConnection(conString)) 
    { 
     using (SqlDataAdapter sda = new SqlDataAdapter()) 
     { 
      cmd.Connection = con; 
      sda.SelectCommand = cmd; 
      using (DataSet ds = new DataSet()) 
      { 
       sda.Fill(ds); 
       return ds; 
      } 
     } 
    } 
} 


     protected void btn_Click(object sender, EventArgs e) 
     { 

      RadioButton r1, r2, r3, r4; 
      HiddenField hdn; 
      int count = 0; 
      int neg = 0; 
      int total=0; 
      int totalgrid1=0; 
      int totalgrid2=0; 

      int attempt1 = 0; 
      int attempt2 = 0; 
      int Tattempt = 0; 
      int correct = 0; 
      int correct1 = 0; 
      int correct2 = 0; 

      string selans = "-1"; 
      for (int i = 0; i < GridView1.Rows.Count; i++) 
      { 
       r1 = (RadioButton)GridView1.Rows[i].Cells[0].FindControl("rad1"); 
       r2 = (RadioButton)GridView1.Rows[i].Cells[0].FindControl("rad2"); 
       r3 = (RadioButton)GridView1.Rows[i].Cells[0].FindControl("rad3"); 
       r4 = (RadioButton)GridView1.Rows[i].Cells[0].FindControl("rad4"); 
       hdn = (HiddenField)GridView1.Rows[i].Cells[0].FindControl("hf"); 
       if (r1.Checked) 
       { 
        selans = r1.Text; 

       } 
       else if (r2.Checked) 
       { 
        selans = r2.Text; 

       } 
       else if (r3.Checked) 
       { 
        selans = r3.Text; 

       } 
       else if (r4.Checked) 
       { 
        selans = r4.Text; 

       } 



       if(r1.Checked || r2.Checked || r3.Checked || r4.Checked) 
       { 
        attempt1++; 

        if (hdn.Value == selans) 
        { 
         count++; 
         correct1++; 
        } 
        else 
        { 
         neg--; 
        } 
       } 

       totalgrid1 = count + neg; 


      } 

    for (int i = 0; i < GridView2.Rows.Count; i++) 
    { 
     r1 = (RadioButton)GridView2.Rows[i].Cells[0].FindControl("rad1"); 
     r2 = (RadioButton)GridView2.Rows[i].Cells[0].FindControl("rad2"); 
     r3 = (RadioButton)GridView2.Rows[i].Cells[0].FindControl("rad3"); 
     r4 = (RadioButton)GridView2.Rows[i].Cells[0].FindControl("rad4"); 
     hdn = (HiddenField)GridView2.Rows[i].Cells[0].FindControl("hf"); 
     if (r1.Checked) 
     { 
      selans = r1.Text; 

     } 
     else if (r2.Checked) 
     { 
      selans = r2.Text; 

     } 
     else if (r3.Checked) 
     { 
      selans = r3.Text; 

     } 
     else if (r4.Checked) 
     { 
      selans = r4.Text; 

     } 



     if (r1.Checked || r2.Checked || r3.Checked || r4.Checked) 
     { 
      attempt2++; 

      if (hdn.Value == selans) 
      { 
       count++; 
       correct2++; 
      } 
      else 
      { 
       neg--; 
      } 
     } 

     totalgrid2 = count + neg; 

    } 
    total = totalgrid1 + totalgrid2; 
    Tattempt = attempt1 + attempt2; 
    correct = correct1 + correct2; 
    Label2.Text = total.ToString(); 
    Label3.Text = Tattempt.ToString(); 
    Label4.Text = correct.ToString(); 

    Response.Redirect("/Student/Result.aspx?Score=" + Label2.Text +"&AttemptedQues=" +Label3.Text+ "&CorrectAns" +Label4.Text); 

} 


} 

Result.aspx.cs: -

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class Student_Result : System.Web.UI.Page 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 
    Label1.Text = Request.QueryString["Score"]; 
    Label2.Text = Request.QueryString["AttemptedQues"]; 
    Label3.Text = Request.QueryString["CorrectAns"]; 
} 
} 
+1

Bitte gebeten, eine bestimmte Frage stellen. Wenn Sie möchten, dass jemand Ihren Code überprüft, fragen Sie ihn bitte unter [Code Review] (http://codereview.stackexchange.com/). – Win

Antwort

0

komme ich zu wissen, wo ich Fehler mache durch Haltepunkt auf Onclick-Ereignis setzen der Schaltfläche. Hier

ist die Lösung:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data.SqlClient; 
using System.Data; 
using System.Configuration; 


public partial class Student_Examdemo : System.Web.UI.Page 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 

    if (!IsPostBack) 
    { 
     GridView1.DataSource = GetData("SELECT top 2 Question, Option1, Option2, Option3, Option4, CorrectAns, Explanation FROM Questions"); 
     GridView1.DataBind(); 


     GridView2.DataSource = GetData("SELECT top 2 Question, Option1, Option2, Option3, Option4, CorrectAns, Explanation FROM Questions WHERE SectionId=2"); 
     GridView2.DataBind(); 

    } 
} 

private DataSet GetData(string query) 
{ 
    string conString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; 
    SqlCommand cmd = new SqlCommand(query); 
    using (SqlConnection con = new SqlConnection(conString)) 
    { 
     using (SqlDataAdapter sda = new SqlDataAdapter()) 
     { 
      cmd.Connection = con; 
      sda.SelectCommand = cmd; 
      using (DataSet ds = new DataSet()) 
      { 
       sda.Fill(ds); 
       return ds; 
      } 
     } 
    } 
} 


     protected void btn_Click(object sender, EventArgs e) 
     { 

      RadioButton r1, r2, r3, r4; 
      HiddenField hdn; 
      int count1 = 0; 
      int count2 = 0; 
      int neg1 = 0; 
      int neg2 = 0; 
      int total=0; 
      int totalgrid1=0; 
      int totalgrid2=0; 

      int attempt1 = 0; 
      int attempt2 = 0; 
      int Tattempt = 0; 
      int correct = 0; 
      int correct1 = 0; 
      int correct2 = 0; 

      string selans = "-1"; 
      for (int i = 0; i < GridView1.Rows.Count; i++) 
      { 
       r1 = (RadioButton)GridView1.Rows[i].Cells[0].FindControl("rad1"); 
       r2 = (RadioButton)GridView1.Rows[i].Cells[0].FindControl("rad2"); 
       r3 = (RadioButton)GridView1.Rows[i].Cells[0].FindControl("rad3"); 
       r4 = (RadioButton)GridView1.Rows[i].Cells[0].FindControl("rad4"); 
       hdn = (HiddenField)GridView1.Rows[i].Cells[0].FindControl("hf"); 
       if (r1.Checked) 
       { 
        selans = r1.Text; 

       } 
       else if (r2.Checked) 
       { 
        selans = r2.Text; 

       } 
       else if (r3.Checked) 
       { 
        selans = r3.Text; 

       } 
       else if (r4.Checked) 
       { 
        selans = r4.Text; 

       } 



       if(r1.Checked || r2.Checked || r3.Checked || r4.Checked) 
       { 
        attempt1++; 

        if (hdn.Value == selans) 
        { 
         count1++; 
         correct1++; 
        } 
        else 
        { 
         neg1--; 
        } 
       } 

       totalgrid1 = count1 + neg1; 


      } 

    for (int i = 0; i < GridView2.Rows.Count; i++) 
    { 
     r1 = (RadioButton)GridView2.Rows[i].Cells[0].FindControl("rad1"); 
     r2 = (RadioButton)GridView2.Rows[i].Cells[0].FindControl("rad2"); 
     r3 = (RadioButton)GridView2.Rows[i].Cells[0].FindControl("rad3"); 
     r4 = (RadioButton)GridView2.Rows[i].Cells[0].FindControl("rad4"); 
     hdn = (HiddenField)GridView2.Rows[i].Cells[0].FindControl("hf"); 
     if (r1.Checked) 
     { 
      selans = r1.Text; 

     } 
     else if (r2.Checked) 
     { 
      selans = r2.Text; 

     } 
     else if (r3.Checked) 
     { 
      selans = r3.Text; 

     } 
     else if (r4.Checked) 
     { 
      selans = r4.Text; 

     } 



     if (r1.Checked || r2.Checked || r3.Checked || r4.Checked) 
     { 
      attempt2++; 

      if (hdn.Value == selans) 
      { 
       count2++; 
       correct2++; 
      } 
      else 
      { 
       neg2--; 
      } 
     } 

     totalgrid2 = count2 + neg2; 

    } 
    total = totalgrid1 + totalgrid2; 
    Tattempt = attempt1 + attempt2; 
    correct = correct1 + correct2; 
    Label2.Text = total.ToString(); 
    Label3.Text = Tattempt.ToString(); 
    Label4.Text = correct.ToString(); 

    Response.Redirect("/Student/Result.aspx?Score=" + Label2.Text +"&AttemptedQues=" +Label3.Text+ "&CorrectAns=" +Label4.Text); 

} 


} 
Verwandte Themen