DropDownList上的数据副本发生了变化

时间:2012-11-14 16:21:49

标签: c# asp.net sql drop-down-menu

我使用DropDownList从FormViews中提取数据并正确计算它。我使用Label13查看学生Run Time is的内容。如果我选择用户1并放置所有数据来计算结果,那么我选择一个用户2(它还没有数据),现在如果我再次选择用户1而不向用户2放置任何信息,它将复制用户的Label13结果一个数据给用户二。(如果这是有道理的)。具体来说是Label13

以下是一些代码:

    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        Label13.Text = "";

        if (DropDownList1.SelectedValue != "0")
        {
            Score();

        }
    }
 protected void Score()
    {
        Label13.Text = "";

        //Button1.Visible = true;
        Button5.Visible = true;
        Label19.Visible = false;
        UpdatePanel4.Visible = true;

        FormView2.DataBind();
        Label sitL = ((Label)FormView2.FindControl("SitUpsLabel"));
        Label pushL = ((Label)FormView2.FindControl("pushUpsLabel"));
        Label MeterL = ((Label)FormView2.FindControl("MeterLabel"));

        if (DropDownList1.SelectedValue != "0")
        {
            if (sitL.Text != "" || pushL.Text != "" || MeterL.Text != "")
            {

                int count = 0;
                int counter2 = 0;
                string test = sitL.Text;
                decimal val;
                string test2 = pushL.Text;
                decimal val2;
                string test3 = MeterL.Text;
                decimal val3;

                Decimal.TryParse(test, out val);
                Decimal.TryParse(test2, out val2);
                Decimal.TryParse(test3, out val3);
                //decimal holder = 0;
                //decimal holder2 = 0;
                //decimal scores = 0;


                for (int i = 0; i < situps.Length; i++)
                {
                    if (val == 30 + count)
                    {
                        Label14.Text = "SitUps Score: " + situps[i];
                        holder = situps[i];
                    }
                    count = count + 1;
                }
                for (int i = 0; i < pushups.Length; i++)
                {
                    if (val2 == 21 + counter2)
                    {
                        Label15.Text = "Push Ups Score: " + pushups[i];
                        holder2 = pushups[i];
                    }
                    counter2 = counter2 + 1;
                }

                decimal counter = 0;
                decimal sideCounter = 0;

                int placer = 0;
                for (int i = 0; i < 1700; i++)
                {

                    if (val3 == 56 + counter)
                    {
                        Label20.Text = "300 Meter: " + meterRun[placer];
                        holder3 = meterRun[placer];


                    }
                    counter = counter + .01M;
                    sideCounter = sideCounter + .01M;
                    if (sideCounter >= .5M)
                    {
                        placer++;
                        sideCounter = 0;
                    }

                }

                if (val3 < 56)
                {
                    holder3 = 50;
                }
                if (val3 > 71)
                {
                    holder3 = 0;
                }


                if (val < 30)
                {
                    holder = 0.00M;
                }
                if (val > 38)
                {
                    holder = 50.00M;
                }
                if (val2 < 21)
                {
                    holder2 = 0.00M;
                }
                if (val2 > 35)
                {
                    holder2 = 50.00M;
                }

                scores = holder + holder2 + holder3;
                scores = 160 - scores;

                int min1 = 1;
                int min2 = 4;
                int sec1 = 3;
                int sec2 = 1;
                string a = "{0}{1}{2}{3}";
                string[] numbers = new string[57];
                for (int i = 0; i < 57; i++)
                {
                    numbers[i] = string.Format(a, min1, min2, sec1, sec2);

                    sec2 = sec2 - 1;
                    if (sec2 == -1)
                    {
                        sec2 = 9;
                        sec1 = sec1 - 1;
                    }
                    if (sec1 == -1)
                    {
                        sec1 = 5;
                        min2 = min2 - 1;
                    }
                    //Console.WriteLine(numbers[i]);


                }


                decimal points = 30;
                decimal points2 = 30.357M;

                {

                    if (scores <= 30)
                    {
                        Label12.Text = scores.ToString();
                        Label13.Text = "1431";
                        SqlConnection conns = new SqlConnection(ConfigurationManager.ConnectionStrings["TestDBConnectionString1"].ConnectionString);
                        SqlCommand cmd = new SqlCommand("UPDATE bleaTest SET rTimeN = @rTimeN WHERE (Id = @Id)", conns);
                        cmd.CommandType = CommandType.Text;
                        Label IdL = ((Label)FormView1.FindControl("IdLabel"));
                        cmd.Parameters.AddWithValue("@Id", IdL.Text);
                        cmd.Parameters.AddWithValue("@rTimeN", Label13.Text);
                        conns.Open();
                        cmd.ExecuteNonQuery();

                    }
                    if (scores > 40)
                    {
                        Label12.Text = "Failed";
                        Label13.Text = "Failed";

                        SqlConnection conns = new SqlConnection(ConfigurationManager.ConnectionStrings["TestDBConnectionString1"].ConnectionString);
                        SqlCommand cmd = new SqlCommand("UPDATE bleaTest SET rTimeN = @rTimeN WHERE (Id = @Id)", conns);
                        cmd.CommandType = CommandType.Text;
                        Label IdL = ((Label)FormView1.FindControl("IdLabel"));
                        cmd.Parameters.AddWithValue("@Id", IdL.Text);
                        cmd.Parameters.AddWithValue("@rTimeN", Label13.Text);
                        conns.Open();
                        cmd.ExecuteNonQuery();


                    }
                    for (int i = 0; i < miles.Length; i++)
                    {

                        if (scores > points && scores < points2)
                        {
                            Label12.Text = scores.ToString();
                            Label13.Text = numbers[i];
                            SqlConnection conns = new SqlConnection(ConfigurationManager.ConnectionStrings["TestDBConnectionString1"].ConnectionString);
                            SqlCommand cmd = new SqlCommand("UPDATE bleaTest SET rTimeN = @rTimeN WHERE (Id = @Id)", conns);
                            cmd.CommandType = CommandType.Text;
                            Label IdL = ((Label)FormView1.FindControl("IdLabel"));
                            cmd.Parameters.AddWithValue("@Id", IdL.Text);
                            cmd.Parameters.AddWithValue("@rTimeN", Label13.Text);
                            conns.Open();
                            cmd.ExecuteNonQuery();

                        }
                        points = points + .357M;
                        points2 = points2 + .357M;


                    }
                }


                Label16.Text = scores.ToString();


            }
        }




    }

2 个答案:

答案 0 :(得分:2)

检查您的页面加载是否未被调用两次

将您用于填写下拉列表的代码填入

    if  (!IsPostBack)
{
}

答案 1 :(得分:0)

我在DropDownList1_SelectedIndexChange方法中搞砸了一些代码,并且还更改了我的FormView1 EnableViewState="False"

以下是DropDownList1_SelectedIndexChange的代码:

 protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (DropDownList1.SelectedValue != "0")
     {
         FormView2.DataBind();
         Label12.Text = "";
         Label13.Text = "";

         Button2_Click(sender, e);
         Button5.Visible = true;
         Label19.Visible = false;
         UpdatePanel4.Visible = true;
     }
     else
     {
         UpdatePanel4.Visible = false;
         Button5.Visible = false;
         Label19.Visible = true;
     }
 }