c#测验项目

c#测验项目,c#,asp.net,C#,Asp.net,请帮我纠正这个错误!这里ResultValue是一个枚举 描述:编译服务此请求所需的资源时出错。请查看以下特定错误详细信息,并适当修改源代码 编译器错误消息:CS0019:运算符“==”不能应用于“string”和“Answer.ResultValue”类型的操作数 Source Error: Line 38: Answer a = (Answer)al[i]; Line 39: Line 40: if (

请帮我纠正这个错误!这里ResultValue是一个枚举

描述:编译服务此请求所需的资源时出错。请查看以下特定错误详细信息,并适当修改源代码

编译器错误消息:CS0019:运算符“==”不能应用于“string”和“Answer.ResultValue”类型的操作数

 Source Error:


   Line 38:                 Answer a = (Answer)al[i];
   Line 39: 
   Line 40:                 if (a.Result == Answer.ResultValue.Correct)
   Line 41:                     correct=correct+1;
   Line 42:             }
=================================

 using System;
 using System.Data;
 using System.Configuration;
 using System.Collections;
 using System.Web;
 using System.Web.Security;
 using System.Web.UI;
 using System.Web.UI.WebControls;
 using System.Web.UI.WebControls.WebParts;
 using System.Web.UI.HtmlControls;



  public partial class results : System.Web.UI.Page
 {
  protected void Page_Load(object sender, EventArgs e)
 {
    ArrayList al = (ArrayList)Session["AnswerList"];

    if (al == null)
    {
        Response.Redirect("History.aspx");
    }

    resultGrid.DataSource = al;
    resultGrid.DataBind();

    // Save the results into the database.

    if (IsPostBack == false)
    {
        // Calculate score
        double questions = al.Count;
        double correct = 0.0;


        for (int i = 0; i < al.Count; i++)
        {
            Answer a = (Answer)al[i];

            if (a.Result == Answer.ResultValue.Correct)
                correct=correct+1;
        }

        double score = (correct / questions) * 100;

        SqlDataSource studentQuizDataSource = new SqlDataSource();
        studentQuizDataSource.ConnectionString =             
         ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
        studentQuizDataSource.InsertCommand = "INSERT INTO UserQuiz ([QuizID],                 

          [DateTimeComplete], [Score], [UserName]) VALUES (@QuizID, @DateTimeComplete,               
              @Score, @UserName)";

        studentQuizDataSource.InsertParameters.Add("QuizID", 
          Session["QuizID"].ToString());
        studentQuizDataSource.InsertParameters.Add("Score", score.ToString());
        studentQuizDataSource.InsertParameters.Add("UserName", User.Identity.Name);
        studentQuizDataSource.InsertParameters.Add("DateTimeComplete",  
        DateTime.Now.ToString());

        int rowsAffected = studentQuizDataSource.Insert();
        if (rowsAffected == 0)
        {

            errorLabel.Text = "There was a problem saving your quiz results into our 
                               database.  Therefore, the results from this quiz will               
                                    not be displayed on the list on the main menu.";


        }

    }


}

protected void resultGrid_SelectedIndexChanged(object sender, EventArgs e)
{
    SqlDataSource1.FilterExpression = "QuestionOrder=" + resultGrid.SelectedValue;
 }

很明显,您试图与字符串进行比较,字符串是不同的,不能像那样进行比较。相反,我认为您应该尝试替换以下代码:

public string Result
{
    get
    {
        if (m_UserAns == m_CorrectAnswer)
        {
            return "Correct";
        }
        else
        {
            return "Incorrect";
        }
    }
}

尝试评估以下内容:-

if (a.Result == Answer.ResultValue.Correct.ToString())

您能提供
答案的代码吗?@user1122660,如果这解决了您的问题,请将其标记为答案。
public ResultValue Result
{
    get
    {
        if (m_UserAns == m_CorrectAnswer)
        {
            return ResultValue.Correct;
        }
        else
        {
            return ResultValue.Incorrect;
        }
    }
}
if (a.Result == Answer.ResultValue.Correct.ToString())