0

asp.net ページにラベルがあり、特定の状況でそのテキストを変更します。コードは次のとおりです。

<asp:Label ID="errorMessage" runat="server" Text="Label" Visible="False"></asp:Label>

 errorMessage.Text = MyGlobals.student.registerCourse(c, ref addList, course).ToString();
 errorMessage.ForeColor = System.Drawing.Color.Red;
 errorMessage.Visible = true;

デバッグすると、 MyGlobals.student.registerCourse(c, ref addList, course).ToString() メソッドがエラー メッセージを返すことがわかりました。次に、ラベルを表示するように設定しましたが、ページが読み込まれるとラベルが表示されません。また、デバッグ中に、ラベルの「textsetbyaddparsedsubobject」プロパティが false であることを確認しました。それが問題でしょうか?ページにラベルが表示されないのはなぜですか? 誰でも助けることができますか?

ありがとう。

編集:ここに完全なコードがあります:

 protected void bSubmitChanges_Click1(object sender, EventArgs e)
{
    Userfunctions function = new Userfunctions();
    List<string> dropList = new List<string>();
    List<string> addList = new List<string>();
    SqlConnection con = new SqlConnection();
    con.ConnectionString = Userfunctions.GetConnectionString();
    SqlCommand cmd;
    con.Open();
    string ID = MyGlobals.currentID;


    try
    {
        for (int i = 1; i <= 6; i++)
        {
            string course;
            if ((course = boxCRN(i)) != "")
            {
                cmd = new SqlCommand("select count (*) from CourseTable where CRN=@course", con);
                cmd.Parameters.AddWithValue("@course", course);
                int result = Convert.ToInt32(cmd.ExecuteScalar());

                if (result > 0)
                {
                    cmd = new SqlCommand("select * from CourseTable where CRN=@course", con);
                    cmd.Parameters.AddWithValue("@course", course);

                    cmd.ExecuteScalar();

                    SqlDataAdapter da = new SqlDataAdapter(cmd);

                    DataTable dt = new DataTable();
                    da.Fill(dt);

                    foreach (DataRow dr in dt.Rows)
                    {
                        string query = "SELECT * FROM CourseTable WHERE CourseCode='" + dr["CourseCode"] + "' AND CourseNumber='" + dr["CourseNumber"] + "' AND Term='" + dr["Term"] + "'";
                        cmd = new SqlCommand(query, con);
                        SqlDataAdapter da2 = new SqlDataAdapter(cmd);

                        DataTable dt2 = new DataTable();
                        da2.Fill(dt2);
                        DataRow dr2 = dt2.Rows[0];

                        cmd = new SqlCommand("select * from PrereqTable where CourseCode='" + dr["CourseCode"] + "' AND CourseNumber='" + dr["CourseNumber"] + "' AND Term='" + dr["Term"] + "'", con);

                        da2 = new SqlDataAdapter(cmd);

                        dt2 = new DataTable();
                        da2.Fill(dt2);
                        List<string> pre = new List<string>();
                        foreach (DataRow dr5 in dt2.Rows)
                        {
                            pre.Add(Convert.ToString(dr5["pCourseCode"]) + Convert.ToString(dr5["pCourseNumber"]));
                        }


                        Course c = new Course(dr2["InstructorID"].ToString(), dr2["CourseCode"].ToString(), dr2["CourseNumber"].ToString(), dr2["CourseName"].ToString(), dr2["Term"].ToString(), dr2["CRN"].ToString(), dr2["Level"].ToString(), dr2["Credit"].ToString(), dr2["Description"].ToString(), dr2["Capacity"].ToString());

                        c.addPrereq(pre);
                        string message = MyGlobals.student.registerCourse(c, ref addList, course).ToString();
                        errorMessage.Text = message;
                        errorMessage.ForeColor = System.Drawing.Color.Red;
                        errorMessage.Visible = true;
                        Label1.Visible = true;
                        Label1.Text = "asdasdasd";


                    }

                }

            }
        }
    }
    catch (Exception) { }

    for (int i = 0; i < showCourses.Rows.Count; i++)
    {
        string a = ((DropDownList)showCourses.Rows[i].FindControl("actionmenu")).SelectedValue;
        if (((DropDownList)showCourses.Rows[i].FindControl("actionmenu")).SelectedValue == "1")
        {
            string courseCode = showCourses.Rows[i].Cells[1].Text, courseNumber = showCourses.Rows[i].Cells[2].Text;

            SqlCommand com = new SqlCommand("select * from CourseTable where CourseCode=@courseCode and CourseNumber=@courseNumber", con);
            com.Parameters.AddWithValue("courseCode", courseCode);
            com.Parameters.AddWithValue("courseNumber", courseNumber);

            try
            {
                SqlDataAdapter da2 = new SqlDataAdapter(com);

                DataTable dt2 = new DataTable();
                da2.Fill(dt2);
                DataRow dr2 = dt2.Rows[0];

                Course c = new Course(dr2["InstructorID"].ToString(), dr2["CourseCode"].ToString(), dr2["CourseNumber"].ToString(), dr2["CourseName"].ToString(), dr2["Term"].ToString(), dr2["CRN"].ToString(), dr2["Level"].ToString(), dr2["Credit"].ToString(), dr2["Description"].ToString(), dr2["Capacity"].ToString());
                Register reg = new Register(c, MyGlobals.student);

                MyGlobals.student.dropCourse(reg);

                dropList.Add(showCourses.Rows[i].Cells[1].Text + showCourses.Rows[i].Cells[2].Text);
            }
            catch (Exception) { }
        }
    }

    foreach (string course in dropList)
    {
        for (int i = 0; i < MyGlobals.student.getRegistered().Count; i++ )
        {
            if (MyGlobals.student.getRegistered()[i].getCourse().getCode().ToString() + MyGlobals.student.getRegistered()[i].getCourse().getNumber().ToString() == course)
                MyGlobals.student.dropCourse(MyGlobals.student.getRegistered()[i]);
        }
        cmd = new SqlCommand("delete from RegisterTable where StudentID='" + MyGlobals.currentID + "' and CourseCode='" + course.Substring(0, course.Length - 3) + "' and CourseNumber='" + course.Substring(course.Length - 3, 3) + "'", con);
        cmd.ExecuteNonQuery();
    }

    try
    {
        foreach (string courses in addList)
        {
            string courseCode = "";
            string courseNumber = "";
            string term = MyGlobals.currentTerm + " " + MyGlobals.currentYear;
            string q = ("select CourseCode from CourseTable where CRN=@courses");
            string grade = "";
            SqlCommand command = new SqlCommand(q, con);
            command.Parameters.AddWithValue("@courses", courses);
            courseCode = Convert.ToString(command.ExecuteScalar());
            q = ("select CourseNumber from CourseTable where CRN=@courses");
            command = new SqlCommand(q, con);
            command.Parameters.AddWithValue("@courses", courses);
            courseNumber = Convert.ToString(command.ExecuteScalar());


            cmd = new SqlCommand("insert into RegisterTable (CourseCode,CourseNumber,Term,StudentID,Grade) values(@courseCode,@courseNumber,@term, @ID,'U')", con);
            cmd.Parameters.AddWithValue("@courseCode", courseCode);


            cmd.Parameters.AddWithValue("@courseNumber", courseNumber);

            cmd.Parameters.AddWithValue("@term", term);

            cmd.Parameters.AddWithValue("@ID", ID);
            cmd.Parameters.AddWithValue("@grade", grade);

            cmd.ExecuteNonQuery();
        }
    }
    catch (Exception) { }
    con.Close();

    Response.Redirect("AddDropClasses.aspx");

}
}

そして registerCourse 関数:

 public  string registerCourse(Course course, ref List <string> addList, string crn) {
    bool registered = true;
    string message ="";
    foreach (string s in course.getTime())
    {
        Userfunctions f = new Userfunctions();
        foreach (Register r in this.register) {
            if (r.getCourse().getTerm() == MyGlobals.currentTerm.ToString() + " " + MyGlobals.currentYear.ToString() && !f.TimeCheck(s, r.getCourse().getTime()))
            {
                registered = false;
                message = "Time conflict";
            }
        }
    }
    if (registered) {

        SqlConnection con = new SqlConnection();
        con.ConnectionString = Userfunctions.GetConnectionString();
        con.Open();
        string id = MyGlobals.currentID;
        SqlCommand cmd = new SqlCommand("SELECT count (*) from RegisterTable where CourseCode ='" + course.getCode() +"' and CourseNumber='" + course.getNumber() + "' and Term='" + course.getTerm()+"'" , con);
        cmd.Parameters.AddWithValue("@id", id);
        int active = Convert.ToInt32(cmd.ExecuteScalar());
        if (active >= Convert.ToInt32(course.getCapacity())){
            registered = false;
            message = "Not enough capacity";
        }
        if (registered) {
            foreach (string s in course.getPrerequisites()) {
                if (!hasPassedCourse(s)) {
                    registered = false;
                    message = "Prerequisite error";
                }
            }
        }

    }

    if (registered)
    {
        Register reg = new Register(course, MyGlobals.student);
        MyGlobals.student.addToSchedule(reg);
        addList.Add(crn);
    }

    return message;
}
4

2 に答える 2

2

下の行を削除

Response.Redirect("AddDropClasses.aspx");

ページを新しいページとして再度ロードします

于 2013-06-08T17:48:17.860 に答える