1
        if (Session["totalCost"] != null)
        {
             if (Session["totalCost"] != "confirm")
             {
                totRevenueLabel.Text = totalRevenueInteger.ToString();
                totalRevenueInteger += int.Parse(Session["totalCost"].ToString());
             }

但是,当我执行程序时,它说输入字符串的格式不正确

请帮忙!

4

3 回答 3

2

你正在解析

int.Parse(Session["totalCost"].ToString());

所以它应该Session["totalCost"]有一个字符串格式的数值。但早些时候你正在做:

if (Session["totalCost"] != "confirm")

这表明Session["totalCost"]包含字符串格式的字母。两种说法都是相反的。我希望现在你能找到你的问题。

于 2013-08-27T02:03:41.330 回答
1

该错误意味着您尝试从中解析整数的字符串实际上并不包含有效的整数。

int i;
if(int.TryParse(Session["totalCost"].ToString(), out i)
{
   totalRevenueInteger = i;
}
于 2013-08-27T01:59:44.687 回答
1

如果Session["totalCost"].ToString())为 null 或为空int.parse将抛出input string was not put correct format

尝试添加错误处理或使用int.TryParse并提供默认值

例子:

         if (Session["totalCost"] != "confirm")
         {
            totRevenueLabel.Text = totalRevenueInteger.ToString();

            int value = 0;
            int.TryParse(Session["totalCost"].ToString(), out value);

            totalRevenueInteger += value;
         }

或者

         if (Session["totalCost"] != "confirm")
         {
            totRevenueLabel.Text = totalRevenueInteger.ToString();

            string value = Session["totalCost"].ToString();

            totalRevenueInteger += !string.IsNullOrEmpty(value) ? int.TryParse(value) : 0;
         }
于 2013-08-27T02:02:12.857 回答