输入字符串在Convert.ToInt32中的格式不正确

时间:2019-02-13 20:47:57

标签: c# asp.net exception formatexception

当我运行“ ProductDescription.aspx”页面时,出现此错误“ mscorlib.dll中发生了'System.FormatException'类型的异常,但未在用户代码中处理。其他信息:输入字符串的格式不正确格式。”在条件条件下使用Convert.ToInt32。

程序仅在加载“ ProductDescription.aspx”页面时显示该错误。我尝试了Double.Parse方法和int.Parse方法,它们显示相同的错误。

ProductDescription.aspx.cs:

 if (Convert.ToInt32(t1.Text) > Convert.ToInt32(pqty) )
    {
        l1.Text = "error";
    }
    else
    {
        l1.Text = "";
}

ProductDescription.aspx:

    <div style="height: 300px; width: 400px; float: left; border-style: solid; border-width: 1px;">
         item name = <%#Eval("name") %> <br />
        Description = <%#Eval("description") %> <br />
          Price = <%#Eval("price") %> <br />
          Quantity = <%#Eval("quantity") %>
    </div>
             </div>
    </ItemTemplate>
    <FooterTemplate>


    </FooterTemplate>
</asp:Repeater>
<br />
<table>
    <tr>
        <td> Enter Quantity </td>
        <td> <asp:TextBox ID="t1" runat="server" TextMode="Number"></asp:TextBox></td>
        <td> <asp:Button ID="b1" runat="server" Text="Add to cart" OnClick="b1_Click" /> </td>
    </tr>
    <tr>
        <td colspan="3"> <asp:Label ID="l1" runat="server" ForeColor="Red" Text=""></asp:Label></td>
    </tr>
</table>

1 个答案:

答案 0 :(得分:0)

当您尝试转换格式不正确的字符串时,

Convert.ToInt32会引发此异常。期望的字符串是整数,例如"1""654"

您可能没有为文本框t1设置默认值,因此它正在尝试将""转换为int,而这不能。

您可以通过设置默认值或在输入值之前不运行比较来解决此问题。