Error on int.parse
本文关键字:parse int on Error | 更新日期: 2023-09-27 18:25:27
输入字符串的格式不正确。在这一行:
int total = 0;
total = int.Parse(TextBox2.Text) + int.Parse(TextBox4.Text) + int.Parse(TextBox6.Text) +
int.Parse(TextBox8.Text) + int.Parse(TextBox10.Text) + int.Parse(TextBox12.Text) +
int.Parse(TextBox14.Text) + int.Parse(TextBox16.Text);
Label1.Text = total.ToString();
我想将该值传递到另一个页面。这意味着什么?T_T提前感谢:)
protected void Button1_Click(object sender, EventArgs e)
{
Session["Month"] = DropDownList2.SelectedValue;
Session["expen1"] = TextBox1.Text;
Session["expen2"] = TextBox3.Text;
Session["expen3"] = TextBox5.Text;
Session["expen4"] = TextBox7.Text;
Session["expen5"] = TextBox9.Text;
Session["expen6"] = TextBox11.Text;
Session["expen7"] = TextBox13.Text;
Session["expen8"] = TextBox15.Text;
int totalvalue = 0;
totalvalue = int.Parse(TextBox2.Text) + int.Parse(TextBox4.Text) + int.Parse(TextBox6.Text) + int.Parse(TextBox8.Text) + int.Parse(TextBox10.Text) + int.Parse(TextBox12.Text) + int.Parse(TextBox14.Text) + int.Parse(TextBox16.Text);
Label1.Text = totalvalue.ToString();
Session["price1"] = TextBox2.Text;
Session["price2"] = TextBox4.Text;
Session["price3"] = TextBox6.Text;
Session["price4"] = TextBox8.Text;
Session["price5"] = TextBox10.Text;
Session["price6"] = TextBox12.Text;
Session["price7"] = TextBox14.Text;
Session["price8"] = TextBox16.Text;
Session["total"] = Label1.Text;
Server.Transfer("sum.aspx");
}
我想将结果存储在sum.aspx中。
如果您的任何TextBox
值是null
或不是数字,这将中断。为了使其工作,所有TextBox
值都需要具有默认值0
,并且必须将TextBox
的输入限制为数字。
不要使用文本框和解析您信任的数字文本,而是在解析之前使用某种输入掩码或验证。或者,使用不同的控件,如数字上/下或数字微调器。
您需要了解如何处理异常,何时使用try-parse以及何时使用parse。。。
如果任何文本框为空,则会出现异常,因为无法解析空文本。请改用int.TryParse
。
这意味着什么?
其中一个TextBox包含无法解析为Integer的文本。
Check每个文本框的数据都应该是数字。如果尝试输入字符串并使用int.parse进行验证,则会出现此错误。
这意味着其中一个文本框值(TextBox#.Text)包含无法"转换"为整数的值。
文本框中有哪些值?例如,如果文本框包含非数字字符,它将无法转换,因为字母"a"没有数字值。
这意味着对int.Parse的一个调用引发了异常,因为文本值不是可以解析为Integer的值(例如,文本是非数值)。
更好的方法是:
var textBoxesToParse = new [] { TextBox2, TextBox4, TextBox6, TextBox8, TextBox10, TextBox12, TextBox14, TextBox16 };
int total = 0;
foreach (var textBox in textBoxesToParse)
{
int textBoxValue;
if(int.TryParse(textBox.Text, out textBoxValue))
{
total += textBoxValue;
}
else
{
// The textbox had an invalid value, up to you what you need to do here.
}
}
如前所述,错误是其中一个文本框为空或非数字值。
您可以使用RegularExpressionValidator
,以便仅当值为数字时才允许用户提交表单。
<asp:RegularExpressionValidator ID="RegularExpressionValidator7" runat="server"
ControlToValidate="txtLastName"Display="Dynamic" ErrorMessage="Numeric characters only"
ForeColor="Red" ValidationExpression="^[0-9]*$"
此外,您还应该考虑使用tryParse
或Int32.Parse()
;如果传递了一个空字符串,则后者返回0。