Входная строка не была в правильном формате в 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, что не может.
Вы можете решить эту проблему, установив значение по умолчанию или не запуская сравнение, пока значение не будет введено.