C# 虽然它似乎不在循环中的热路径上,我也认为这是可能的原因,但从随机值的构造位置来看,该代码周围没有循环。您可以在按钮单击和getNextQuestion中找到它,它也不是从循环中调用的。它不在紧密循环中,但仍然可能受到相同原因的影响。你试过只使用一个随机实例

C# 虽然它似乎不在循环中的热路径上,我也认为这是可能的原因,但从随机值的构造位置来看,该代码周围没有循环。您可以在按钮单击和getNextQuestion中找到它,它也不是从循环中调用的。它不在紧密循环中,但仍然可能受到相同原因的影响。你试过只使用一个随机实例,c#,asp.net,C#,Asp.net,虽然它似乎不在循环中的热路径上,我也认为这是可能的原因,但从随机值的构造位置来看,该代码周围没有循环。您可以在按钮单击和getNextQuestion中找到它,它也不是从循环中调用的。它不在紧密循环中,但仍然可能受到相同原因的影响。你试过只使用一个随机实例来看看它是否有任何效果吗?@user3184290因此,基本上代码本身没有真正的问题,只是期望“随机”一词的含义。是的,代码工作正常。他只是和随机函数一起使用 public partial class Computertest : System


虽然它似乎不在循环中的热路径上,我也认为这是可能的原因,但从
随机
值的构造位置来看,该代码周围没有循环。您可以在按钮单击和
getNextQuestion
中找到它,它也不是从循环中调用的。它不在紧密循环中,但仍然可能受到相同原因的影响。你试过只使用一个随机实例来看看它是否有任何效果吗?@user3184290因此,基本上代码本身没有真正的问题,只是期望“随机”一词的含义。是的,代码工作正常。他只是和随机函数一起使用
public partial class Computertest : System.Web.UI.Page
{
    public static SqlConnection sqlconn;
    protected string PostBackStr;

    protected void Page_Load(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection();
        con.ConnectionString = "Data Source=SHAHBAAZ-PC;Initial Catalog=project;User ID=sa;Password=pass;";
        PostBackStr = Page.ClientScript.GetPostBackEventReference(this, "time");
        if (IsPostBack)
        {
            string eventArg = Request["__EVENTARGUMENT"];
            if (eventArg == "time")
            {
                getNextQuestion();
            }
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {

        Label1.Visible = false;
        txtName.Visible = false;
        Button1.Visible = false;
        Panel1.Visible = true;
        lblName.Text = "Name : " + txtName.Text;
        int score = Convert.ToInt32(txtScore.Text);
        lblScore.Text = "Score : " + Convert.ToString(score);
        Session["counter"] = "1";
        Random rnd = new Random();
      int i = rnd.Next(1, 6);//Here specify your starting slno of question table and ending no.
        //lblQuestion.Text = i.ToString();
        getQuestion(i);

    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        getNextQuestion();

    }
    public void getQuestion(int no)
    {
        SqlConnection con = new SqlConnection();
        con.ConnectionString = "Data Source=SHAHBAAZ-PC;Initial Catalog=project;User ID=sa;Password=pass;";
        string str = "select * from ComputerQuestion where slNo=" + no + "";
        SqlDataAdapter da2 = new SqlDataAdapter(str, con);
        DataSet ds2 = new DataSet();
        da2.Fill(ds2, "Question");
        if (ds2.Tables[0].Rows.Count > 0)
        {
            DataRow dtr;
            int i = 0;
            while (i < ds2.Tables[0].Rows.Count)
            {
                dtr = ds2.Tables[0].Rows[i];
                Session["Answer"] = Convert.ToString(Convert.ToInt32(dtr["Correct"].ToString()) - 1);
                lblQuestion.Text = "Q." + Session["counter"].ToString() + "  " + dtr["Question"].ToString();
                RblOption.ClearSelection();
                RblOption.Items.Clear();
                RblOption.Items.Add(dtr["Option1"].ToString());
                RblOption.Items.Add(dtr["Option2"].ToString());
                RblOption.Items.Add(dtr["Option3"].ToString());
                RblOption.Items.Add(dtr["Option4"].ToString());
                i++;
            }
        }
    }
    public void getNextQuestion()
    {
        if (Convert.ToInt32(Session["counter"].ToString()) < 6)//10 is a counter which is used for 10 questions
        {
            if (RblOption.SelectedIndex >= 0)
            {
                if (Session["Answer"].ToString() == RblOption.SelectedIndex.ToString())
                {
                    int score = Convert.ToInt32(txtScore.Text) + 1;// 1 for mark for each question
                    txtScore.Text = score.ToString();
                    lblScore.Text = "Score : " + Convert.ToString(score);
                }
            }

            Random rnd = new Random();
            int i = rnd.Next(1, 5);
            //lblQuestion.Text = i.ToString();
            getQuestion(i);
            Session["counter"] = Convert.ToString(Convert.ToInt32(Session["counter"].ToString()) + 1);

        }
        else
        {
            Panel2.Visible = true;

        }
    }
        If not present 
         add   it to arrayand show the questions
        else
        get next random question repeat the check
   if array full make array empty and add new question ID