Входная строка не была в правильном формате в Convert.ToInt32

Когда я запускаю страницу "ProductDescription.aspx", я получаю эту ошибку "Исключение типа" System.FormatException "произошло в mscorlib.dll, но не было обработано в коде пользователя. Дополнительная информация: входная строка была в неправильном формате". в условии if с 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 ответ

Convert.ToInt32 выдает это исключение, когда вы пытаетесь преобразовать строку, которая имеет неправильный формат. Он ожидает строку, которая является целым числом, как "1" или же "654",

Вполне вероятно, что вы не установили значение по умолчанию для вашего текстового поля t1поэтому он пытается конвертировать "" в int, что не может.

Вы можете решить эту проблему, установив значение по умолчанию или не запуская сравнение, пока значение не будет введено.

Другие вопросы по тегам