My Switch statement get stuck on the last statement

  • Thread starter Thread starter bthumber
  • Start date Start date
B

bthumber

The code for the switch works but when I run the last one the problem get
stuck. Here is the code for submit button:

protected void btnSubmit_Click1(object sender, EventArgs e)
{
// Session cookie to be carried over to Conformation.aspx
lblClassification.Text = DropDownList1.SelectedItem.ToString();
Session["Classification"] = lblClassification.Text;

if (DropDownList2.SelectedIndex == 1)
{
Session["choice"] = DropDownList2.SelectedItem.Value;
lblPage.Text = Convert.ToString(DropDownList2.SelectedIndex == 1);
Session["nPage"] = lblPage.Text;

Response.Redirect("Network.aspx");
}
else if (DropDownList2.SelectedIndex == 2)
{
Session["choice"] = DropDownList2.SelectedItem.Value;
lblPage.Text = Convert.ToString(DropDownList2.SelectedIndex == 2);
Session["sPage"] = lblPage.Text;

Response.Redirect("Server.aspx");
}
else if (DropDownList2.SelectedIndex == 3)
{
Session["choice"] = DropDownList2.SelectedItem.Value;
lblPage.Text = Convert.ToString(DropDownList2.SelectedIndex == 3);
Session["sdPage"] = lblPage.Text;

Response.Redirect("Storage.aspx");
}
else if (DropDownList2.SelectedIndex == 4)
{
DropDownList2.Enabled = false;
Session["choice"] = DropDownList2.SelectedItem.Value;
lblPage.Text = Convert.ToString(DropDownList2.SelectedIndex == 4);
Session["wsPage"] = lblPage.Text;

Response.Redirect("Workstation.aspx");
}
else
Session.Clear();
}

And here is the code for the switch:

public void MainSessionData()
{
string choice = (string)Session["choice"];

switch (choice)
{
case "1":
if (Session["nPage"] != null)
{
// If user chooses (Network) Network.aspx executes the
below code
if (Session["Classification"] != null)
{
ClassificationType.Text =
Session["Classification"].ToString();
if (Session["Classification"].Equals("Unclassified"))
lblU.Text = "U".ToLower();
if (Session["Classification"].Equals("Classified"))
lblU.Text = "C".ToLower();
if (Session["Classification"].Equals("Secret"))
lblU.Text = "S".ToLower();
if (Session["Classification"].Equals("Top Secret"))
lblU.Text = "T".ToLower();
}
lblNetwork.Text = Session["nPage"].ToString();
UpdatePanel1.Visible = true;
nPassSessionData();
UpdatePanel2.Visible = false;
UpdatePanel3.Visible = false;
UpdatePanel4.Visible = false;
}
break;
case "2":
if (Session["sPage"] != null)
{
if (Session["Classification"] != null)
{
ClassificationType.Text =
Session["Classification"].ToString();
if (Session["Classification"].Equals("Unclassified"))
lblC.Text = "U".ToLower();
if (Session["Classification"].Equals("Classified"))
lblC.Text = "C".ToLower();
if (Session["Classification"].Equals("Secret"))
lblC.Text = "S".ToLower();
if (Session["Classification"].Equals("Top Secret"))
lblC.Text = "TS".ToLower();
}
// If user chooses (Serve) Server.aspx executes the
below code
if (Session["Classification"] != null)
{
lblClass.Text = Session["Classification"].ToString();
}
lblServer.Text = Session["sPage"].ToString();
UpdatePanel2.Visible = true;
sPassSessionData();
UpdatePanel1.Visible = false;
UpdatePanel3.Visible = false;
UpdatePanel4.Visible = false;
}
break;
case "3":
if (Session["sdPage"] != null)
{
if (Session["Classification"] != null)
{
ClassificationType.Text =
Session["Classification"].ToString();
if (Session["Classification"].Equals("Unclassified"))
lblS.Text = "U".ToLower();
if (Session["Classification"].Equals("Classified"))
lblS.Text = "C".ToLower();
if (Session["Classification"].Equals("Secret"))
lblS.Text = "S".ToLower();
if (Session["Classification"].Equals("Top Secret"))
lblS.Text = "TS".ToLower();
}
// If user chooses (Storage Devises) Storage.aspx
executes the below code
if (Session["Classification"] != null)
{
lblsdClass.Text =
Session["Classification"].ToString();
}
lblStorage.Text = Session["sdPage"].ToString();
UpdatePanel3.Visible = true;
sdPassSessionData();
UpdatePanel1.Visible = false;
UpdatePanel2.Visible = false;
UpdatePanel4.Visible = false;
}
break;
case "4":
if (Session["wsPage"] != null)
{
if (Session["Classification"] != null)
{
ClassificationType.Text =
Session["Classification"].ToString();
if (Session["Classification"].Equals("Unclassified"))
lblWS.Text = "U".ToLower();
if (Session["Classification"].Equals("Classified"))
lblWS.Text = "C".ToLower();
if (Session["Classification"].Equals("Secret"))
lblWS.Text = "S".ToLower();
if (Session["Classification"].Equals("Top Secret"))
lblWS.Text = "TS".ToLower();
}
// If user choose none of the above program defaults to
workstation
if (Session["Classification"] != null)
{
lblwsClass.Text =
Session["Classification"].ToString();
}
lblWorkstation.Text = Session["wsPage"].ToString();
UpdatePanel4.Visible = true;
wsPassSessionData();
UpdatePanel1.Visible = false;
UpdatePanel2.Visible = false;
UpdatePanel3.Visible = false;
}
break;
default:
break;
}

The program hang if I try to do some after I choose "Workstaion"
 
The code for the switch works but when I run the last one the problem get
stuck.  Here is the code for submit button:

protected void btnSubmit_Click1(object sender, EventArgs e)
    {
        // Session cookie to be carried over to Conformation.aspx
        lblClassification.Text = DropDownList1.SelectedItem.ToString();
        Session["Classification"] = lblClassification.Text;

        if (DropDownList2.SelectedIndex == 1)
        {
            Session["choice"] = DropDownList2.SelectedItem.Value;
            lblPage.Text = Convert.ToString(DropDownList2.SelectedIndex == 1);
            Session["nPage"] = lblPage.Text;

            Response.Redirect("Network.aspx");
        }
        else if (DropDownList2.SelectedIndex == 2)
        {
            Session["choice"] = DropDownList2.SelectedItem.Value;
            lblPage.Text = Convert.ToString(DropDownList2.SelectedIndex == 2);
            Session["sPage"] = lblPage.Text;

            Response.Redirect("Server.aspx");
        }
        else if (DropDownList2.SelectedIndex == 3)
        {
            Session["choice"] = DropDownList2.SelectedItem.Value;
            lblPage.Text = Convert.ToString(DropDownList2.SelectedIndex == 3);
            Session["sdPage"] = lblPage.Text;

            Response.Redirect("Storage.aspx");
        }
        else if (DropDownList2.SelectedIndex == 4)
        {
            DropDownList2.Enabled = false;
            Session["choice"] = DropDownList2.SelectedItem.Value;
            lblPage.Text = Convert.ToString(DropDownList2.SelectedIndex == 4);
            Session["wsPage"] = lblPage.Text;

            Response.Redirect("Workstation.aspx");
        }
        else
            Session.Clear();
    }

And here is the code for the switch:

public void MainSessionData()
    {
        string choice = (string)Session["choice"];

        switch (choice)
        {
            case "1":
                if (Session["nPage"] != null)
                {
                    // If user chooses (Network) Network.aspx executes the
below code
                    if (Session["Classification"] != null)
                    {
                        ClassificationType.Text =
Session["Classification"].ToString();
                        if (Session["Classification"].Equals("Unclassified"))
                            lblU.Text = "U"..ToLower();
                        if (Session["Classification"].Equals("Classified"))
                            lblU.Text = "C"..ToLower();
                        if (Session["Classification"].Equals("Secret"))
                            lblU.Text = "S"..ToLower();
                        if (Session["Classification"].Equals("Top Secret"))
                            lblU.Text = "T"..ToLower();
                    }
                    lblNetwork.Text = Session["nPage"].ToString();
                    UpdatePanel1.Visible = true;
                    nPassSessionData();
                    UpdatePanel2.Visible = false;
                    UpdatePanel3.Visible = false;
                    UpdatePanel4.Visible = false;
                }
                break;
            case "2":
                if (Session["sPage"] != null)
                {
                    if (Session["Classification"] != null)
                    {
                        ClassificationType.Text =
Session["Classification"].ToString();
                        if (Session["Classification"].Equals("Unclassified"))
                            lblC.Text = "U"..ToLower();
                        if (Session["Classification"].Equals("Classified"))
                            lblC.Text = "C"..ToLower();
                        if (Session["Classification"].Equals("Secret"))
                            lblC.Text = "S"..ToLower();
                        if (Session["Classification"].Equals("Top Secret"))
                            lblC.Text = "TS".ToLower();
                    }
                    // If user chooses (Serve) Server..aspx executes the
below code
                    if (Session["Classification"] != null)
                    {
                        lblClass.Text = Session["Classification"].ToString();
                    }
                    lblServer.Text = Session["sPage"].ToString();
                    UpdatePanel2.Visible = true;
                    sPassSessionData();
                    UpdatePanel1.Visible = false;
                    UpdatePanel3.Visible = false;
                    UpdatePanel4.Visible = false;
                }
                break;
            case "3":
                if (Session["sdPage"] != null)
                {
                    if (Session["Classification"] != null)
                    {
                        ClassificationType.Text =
Session["Classification"].ToString();
                        if (Session["Classification"].Equals("Unclassified"))
                            lblS.Text = "U"..ToLower();
                        if (Session["Classification"].Equals("Classified"))
                            lblS.Text = "C"..ToLower();
                        if (Session["Classification"].Equals("Secret"))
                            lblS.Text = "S"..ToLower();
                        if (Session["Classification"].Equals("Top Secret"))
                            lblS.Text = "TS".ToLower();
                    }
                    // If user chooses (Storage Devises) Storage.aspx
executes the below code
                    if (Session["Classification"] != null)
                    {
                        lblsdClass.Text =
Session["Classification"].ToString();
                    }
                    lblStorage.Text = Session["sdPage"].ToString();
                    UpdatePanel3.Visible = true;
                    sdPassSessionData();
                    UpdatePanel1.Visible = false;
                    UpdatePanel2.Visible = false;
                    UpdatePanel4.Visible = false;
                }
                break;
            case "4":
                if (Session["wsPage"] != null)
                {
                    if (Session["Classification"] != null)
                    {
                        ClassificationType.Text =
Session["Classification"].ToString();
                        if (Session["Classification"].Equals("Unclassified"))
                            lblWS.Text = "U".ToLower();
                        if (Session["Classification"].Equals("Classified"))
                            lblWS.Text = "C".ToLower();
                        if (Session["Classification"].Equals("Secret"))
                            lblWS.Text = "S".ToLower();
                        if (Session["Classification"].Equals("Top Secret"))
                            lblWS.Text = "TS".ToLower();
                    }
                    // If user choose none of the above program defaults to
workstation
                    if (Session["Classification"] != null)
                    {
                        lblwsClass.Text =
Session["Classification"].ToString();
                    }
                    lblWorkstation.Text = Session["wsPage"].ToString();
                    UpdatePanel4.Visible = true;
                    wsPassSessionData();
                    UpdatePanel1.Visible = false;
                    UpdatePanel2.Visible = false;
                    UpdatePanel3.Visible = false;
                }
                break;
            default:
                break;
        }

The program hang if I try to do some after I choose "Workstaion"

I think first of all you should try to make the code more clear. You
have so many vain lines and it is not easy to see the core.

For example,

#1 if (DropDownList2.SelectedIndex == 1)
#2 {
#3 Session["choice"] = DropDownList2.SelectedItem.Value;
#4 lblPage.Text = Convert.ToString
(DropDownList2.SelectedIndex == 1);
#5 Session["nPage"] = lblPage.Text;
#6 Response.Redirect("Network.aspx");
#7 }

1) Lines #1 and #4 do the same.
2) Line #4 assigns always "true" in all cases except the "else" case.
3) Line #2 does the same in all cases
4) Not sure why you need to have different session key for each case
but it looks like #5 does the same in all cases too

So, finally you can at least have something like this

// Session cookie to be carried over to Conformation.aspx
lblClassification.Text = DropDownList1.SelectedItem.ToString();
Session["Classification"] = lblClassification.Text;
lblPage.Text = "true";
Session["choice"] = DropDownList2.SelectedItem.Value;
if (DropDownList2.SelectedIndex == 1)
{
Session["nPage"] = lblPage.Text;
Response.Redirect("Network.aspx");
}
else if (DropDownList2.SelectedIndex == 2)
{
Session["sPage"] = lblPage.Text;
Response.Redirect("Server.aspx");
}
else if (DropDownList2.SelectedIndex == 3)
{
Session["sdPage"] = lblPage.Text;
Response.Redirect("Storage.aspx");
}
else if (DropDownList2.SelectedIndex == 4)
{
DropDownList2.Enabled = false;
Session["wsPage"] = lblPage.Text;
Response.Redirect("Workstation.aspx");
}
else
Session.Clear();

Do the same with you second method and I am sure you will easily find
the problem.
 
Thanks, I'll give this a shot.

Brent

Alexey Smirnov said:
The code for the switch works but when I run the last one the problem get
stuck. Here is the code for submit button:

protected void btnSubmit_Click1(object sender, EventArgs e)
{
// Session cookie to be carried over to Conformation.aspx
lblClassification.Text = DropDownList1.SelectedItem.ToString();
Session["Classification"] = lblClassification.Text;

if (DropDownList2.SelectedIndex == 1)
{
Session["choice"] = DropDownList2.SelectedItem.Value;
lblPage.Text = Convert.ToString(DropDownList2.SelectedIndex == 1);
Session["nPage"] = lblPage.Text;

Response.Redirect("Network.aspx");
}
else if (DropDownList2.SelectedIndex == 2)
{
Session["choice"] = DropDownList2.SelectedItem.Value;
lblPage.Text = Convert.ToString(DropDownList2.SelectedIndex == 2);
Session["sPage"] = lblPage.Text;

Response.Redirect("Server.aspx");
}
else if (DropDownList2.SelectedIndex == 3)
{
Session["choice"] = DropDownList2.SelectedItem.Value;
lblPage.Text = Convert.ToString(DropDownList2.SelectedIndex == 3);
Session["sdPage"] = lblPage.Text;

Response.Redirect("Storage.aspx");
}
else if (DropDownList2.SelectedIndex == 4)
{
DropDownList2.Enabled = false;
Session["choice"] = DropDownList2.SelectedItem.Value;
lblPage.Text = Convert.ToString(DropDownList2.SelectedIndex == 4);
Session["wsPage"] = lblPage.Text;

Response.Redirect("Workstation.aspx");
}
else
Session.Clear();
}

And here is the code for the switch:

public void MainSessionData()
{
string choice = (string)Session["choice"];

switch (choice)
{
case "1":
if (Session["nPage"] != null)
{
// If user chooses (Network) Network.aspx executes the
below code
if (Session["Classification"] != null)
{
ClassificationType.Text =
Session["Classification"].ToString();
if (Session["Classification"].Equals("Unclassified"))
lblU.Text = "U"..ToLower();
if (Session["Classification"].Equals("Classified"))
lblU.Text = "C"..ToLower();
if (Session["Classification"].Equals("Secret"))
lblU.Text = "S"..ToLower();
if (Session["Classification"].Equals("Top Secret"))
lblU.Text = "T"..ToLower();
}
lblNetwork.Text = Session["nPage"].ToString();
UpdatePanel1.Visible = true;
nPassSessionData();
UpdatePanel2.Visible = false;
UpdatePanel3.Visible = false;
UpdatePanel4.Visible = false;
}
break;
case "2":
if (Session["sPage"] != null)
{
if (Session["Classification"] != null)
{
ClassificationType.Text =
Session["Classification"].ToString();
if (Session["Classification"].Equals("Unclassified"))
lblC.Text = "U"..ToLower();
if (Session["Classification"].Equals("Classified"))
lblC.Text = "C"..ToLower();
if (Session["Classification"].Equals("Secret"))
lblC.Text = "S"..ToLower();
if (Session["Classification"].Equals("Top Secret"))
lblC.Text = "TS".ToLower();
}
// If user chooses (Serve) Server..aspx executes the
below code
if (Session["Classification"] != null)
{
lblClass.Text = Session["Classification"].ToString();
}
lblServer.Text = Session["sPage"].ToString();
UpdatePanel2.Visible = true;
sPassSessionData();
UpdatePanel1.Visible = false;
UpdatePanel3.Visible = false;
UpdatePanel4.Visible = false;
}
break;
case "3":
if (Session["sdPage"] != null)
{
if (Session["Classification"] != null)
{
ClassificationType.Text =
Session["Classification"].ToString();
if (Session["Classification"].Equals("Unclassified"))
lblS.Text = "U"..ToLower();
if (Session["Classification"].Equals("Classified"))
lblS.Text = "C"..ToLower();
if (Session["Classification"].Equals("Secret"))
lblS.Text = "S"..ToLower();
if (Session["Classification"].Equals("Top Secret"))
lblS.Text = "TS".ToLower();
}
// If user chooses (Storage Devises) Storage.aspx
executes the below code
if (Session["Classification"] != null)
{
lblsdClass.Text =
Session["Classification"].ToString();
}
lblStorage.Text = Session["sdPage"].ToString();
UpdatePanel3.Visible = true;
sdPassSessionData();
UpdatePanel1.Visible = false;
UpdatePanel2.Visible = false;
UpdatePanel4.Visible = false;
}
break;
case "4":
if (Session["wsPage"] != null)
{
if (Session["Classification"] != null)
{
ClassificationType.Text =
Session["Classification"].ToString();
if (Session["Classification"].Equals("Unclassified"))
lblWS.Text = "U".ToLower();
if (Session["Classification"].Equals("Classified"))
lblWS.Text = "C".ToLower();
if (Session["Classification"].Equals("Secret"))
lblWS.Text = "S".ToLower();
if (Session["Classification"].Equals("Top Secret"))
lblWS.Text = "TS".ToLower();
}
// If user choose none of the above program defaults to
workstation
if (Session["Classification"] != null)
{
lblwsClass.Text =
Session["Classification"].ToString();
}
lblWorkstation.Text = Session["wsPage"].ToString();
UpdatePanel4.Visible = true;
wsPassSessionData();
UpdatePanel1.Visible = false;
UpdatePanel2.Visible = false;
UpdatePanel3.Visible = false;
}
break;
default:
break;
}

The program hang if I try to do some after I choose "Workstaion"

I think first of all you should try to make the code more clear. You
have so many vain lines and it is not easy to see the core.

For example,

#1 if (DropDownList2.SelectedIndex == 1)
#2 {
#3 Session["choice"] = DropDownList2.SelectedItem.Value;
#4 lblPage.Text = Convert.ToString
(DropDownList2.SelectedIndex == 1);
#5 Session["nPage"] = lblPage.Text;
#6 Response.Redirect("Network.aspx");
#7 }

1) Lines #1 and #4 do the same.
2) Line #4 assigns always "true" in all cases except the "else" case.
3) Line #2 does the same in all cases
4) Not sure why you need to have different session key for each case
but it looks like #5 does the same in all cases too

So, finally you can at least have something like this

// Session cookie to be carried over to Conformation.aspx
lblClassification.Text = DropDownList1.SelectedItem.ToString();
Session["Classification"] = lblClassification.Text;
lblPage.Text = "true";
Session["choice"] = DropDownList2.SelectedItem.Value;
if (DropDownList2.SelectedIndex == 1)
{
Session["nPage"] = lblPage.Text;
Response.Redirect("Network.aspx");
}
else if (DropDownList2.SelectedIndex == 2)
{
Session["sPage"] = lblPage.Text;
Response.Redirect("Server.aspx");
}
else if (DropDownList2.SelectedIndex == 3)
{
Session["sdPage"] = lblPage.Text;
Response.Redirect("Storage.aspx");
}
else if (DropDownList2.SelectedIndex == 4)
{
DropDownList2.Enabled = false;
Session["wsPage"] = lblPage.Text;
Response.Redirect("Workstation.aspx");
}
else
Session.Clear();

Do the same with you second method and I am sure you will easily find
the problem.
 
Alexey Smirnov said:
You last case calls wsPassSessionData(); check if that method is ok
I can't find anything wrong with that method, I found out if the user
chooses Workstation first then goes back to the home page and chooses
anything else, the program hang at Response.Redirect("ProcessName.aspx");
 
I can't find anything wrong with that method, I found out if the user
chooses Workstation first then goes back to the home page and chooses
anything else, the program hang at Response.Redirect("ProcessName.aspx");

it probably means that ProcessName.aspx is incorrect.
 
Back
Top