2013-09-07 1 views
0

Сообщение об ошибке продолжает появляться. Кроме того, когда я запускаю коды, кажется, что он вообще не работает. Я пытаюсь передать данные на другую страницу. Любое предложение? Это основной код страницы,Исключение формата было необработанным кодом пользователя в C#

public partial class _Default : System.Web.UI.Page 
{ 
static int numBeachBookingInt = 0; 
static int numBushBookingInt = 0; 
static decimal totRevenue = 0; 

protected void Page_Load(object sender, EventArgs e) 
{ 
    string totalRevenue; 
    if (Convert.ToString(Session["confirmBooking"]) == "confirm" && Convert.ToString(Session["bachType"]) == "bush") 
    { 
     totalRevenue = (string)(Session["totalRevenue"]); 
     totRevenue += decimal.Parse(totalRevenue); 
     totRevenueLabel.Text = String.Format("{0:c}", totRevenue); 
     numBushBooking += 1; 
     numBushHouseLabel.Text = numBushBooking.ToString(); 
     Session["confirmBooking"] = "no current booking"; 
     Session["bachType"] = "none"; 
    } 
    else if (Convert.ToString(Session["confirmBooking"]) == "confirm" && Convert.ToString(Session["bachType"]) == "beach") 
    { 
     totalRevenue = (string)(Session["totalRevenue"]); 
     totRevenue += decimal.Parse(totalRevenue); 
     totRevenueLabel.Text = String.Format("{0:c}", totRevenue); 
     numBeachBooking += 1; 
     numBeachHouseLabel.Text = numBeachBooking.ToString(); 
     Session["confirmBooking"] = "no current booking"; 
     Session["bachType"] = "none"; 
    } 
    numBeachHouseLabel.Text = numBeachBooking.ToString(); 
    numBushHouseLabel.Text = numBushBooking.ToString(); 

это второй.

protected void confirmButton_Click(object sender, EventArgs e) 
{ 
    Session["confirmBooking"] = "confirm"; 
    Session["totalRevenue"] = totalRateLabel.Text; 
    switch (bachTypeRadioButtonList.Text) 
    { 
     case "Beach": 
      Session["bachType"] = "beach"; 
      break; 
     case "Bush": 
      Session["bachType"] = "bush"; 
      break; 
     default: 
      Session["bachType"] = "none"; 
      break; 
    } 
    Response.Redirect("MainBookingForm.aspx"); 
} 
+0

Поместите несколько попыток catch, если вы не можете увидеть исключение при работе в отладчике. Вам нужно сузить, какая строка, предложение @musical_coder - хорошее место для начала. – miltonb

ответ

0

Трудно понять, что вы точно знаете, без трассировки стека. Тем не менее, на основе Googling «Исправление формата исключалось кодом пользователя», вполне вероятно, что одним из операторов decimal.Parse(totalRevenue); является проблема. Поскольку строковое значение totalRevenue установлено из totalRateLabel.Text, я не удивлюсь, если у этого ярлыка есть специальные символы (например, знак доллара), которые нужно удалить первым.

+0

Как вы сказали, вторая строка totRevenue + = decimal.Parse (totalRevenue) ;, а не первая строка totRevenue + = decimal.Parse (totalRevenue); вызывает проблему .. но я не добавил никакого специального символа в элемент управления меткой. – user2699500

+0

Основная причина проблемы заключается в том, что totalRevenue не анализируется в десятичную. То, что я бы рекомендовал, заключается в регистрации totalRevenue в текстовом файле непосредственно перед вызовом decimal.Parse(). Это должно быстро выявить, какова плохая стоимость (ы) totalRevenue. Дайте нам знать, как это происходит. –

+0

Это потому, что я установил статический десятичный totRevenue? .. Я немного потерял .. – user2699500

 Смежные вопросы

  • Нет связанных вопросов^_^