输入字符串的格式不正确。 
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.FormatException: 输入字符串的格式不正确。源错误: 
行 73:         {
行 74:             fuPhoto.SaveAs(fullPath);
行 75:             if (photo.AddPhoto(tbName.Text.ToString(),url,type,size,Int32.Parse(ddlCategory.SelectedValue))>0)
行 76:             {
行 77:                 Response.Redirect("~/FenLei.aspx?CategoryID=" + ddlCategory.SelectedValue);
 源文件: d:\微软.NET\ASP.NET项目开发\PhotoOnline\AddPhoto.aspx.cs    行: 75 别人说是类型转换错误,当我debug的时候提示灾难性错误,无可用源,这是怎么回事?
还有这个两种语法有什么不同?
Int32.Parse(ddlCategory.SelectedValue)
Convert.ToInt32(ddlCategory.SelectedValue)

解决方案 »

  1.   

    Int32.Parse(ddlCategory.SelectedValue)只能是string类型
      

  2.   

    检查下ddlCategory.SelectedValue是不是有非数字Convert.ToInt32 参数为 null 时,返回 0; 
    int.Parse 参数为 null 时,抛出异常。 
      
    Convert.ToInt32 参数为 "" 时,抛出异常; 
    int.Parse 参数为 "" 时,抛出异常。 
      
    Convert.ToInt32 可以转换的类型较多; 
    int.Parse 只能转换数字类型的字符串。 
      

  3.   

    Int32.Parse(ddlCategory.SelectedValue)
    看看ddlCategory.SelectedValue是否为整数字符串,也许有空格之类的Int32.Parse(ddlCategory.SelectedValue)
    Convert.ToInt32(ddlCategory.SelectedValue)
    这两个没什么区别,就是把整型字符串转换为整形
      

  4.   

     Response.Redirect("~/FenLei.aspx?CategoryID=" + ddlCategory.SelectedValue.ToString());
      

  5.   

    输出下Response.Write(ddlCategory.SelectedValue);的值 就知道怎么回事了
      

  6.   

    int count=0;
    int.TryParse(xxx,out count)
      

  7.   

    利用 int.tryparse 去转化