输入字符串的格式不正确。在这一行:
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中。
答案 0 :(得分:2)
如果您的任何TextBox
值为null
或不是数字,则会中断。为了实现此目的,所有TextBox
值都需要具有默认值0
,并且您必须将TextBox
的输入限制为数字。
答案 1 :(得分:0)
如果任何文本框为空,您将获得异常,因为无法解析空文本。
请改用int.TryParse
。
答案 2 :(得分:0)
这意味着什么?
其中一个TextBox包含一个无法解析为整数的文本。
答案 3 :(得分:0)
检查每个文本框数据应该是数字。如果尝试输入字符串并使用int.parse进行验证,则会出现此错误。
答案 4 :(得分:0)
这意味着其中一个文本框值(TextBox#.Text)包含一个无法“转换”为整数的值。
文本框中有什么值?例如,如果文本框包含非数字字符,则无法转换,因为字母“a”没有数字值。
答案 5 :(得分:0)
这意味着对int.Parse的一个调用引发了异常,因为文本值不是可以解析为整数的值(例如,文本是非数字值)。
更好的方法是:
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.
}
}
答案 6 :(得分:0)
在解析之前,请使用某种输入掩码或验证,而不是使用文本框并解析您信任的文本。或者,使用不同的控件,如数字向上/向下或数字微调器。
您需要了解如何处理异常,何时使用try parse以及何时使用解析......
答案 7 :(得分:0)
如上所述,错误是您的一个文本框具有空白或非数字值。
您可以使用RegularExpressionValidator
,以便仅在值为数字时才允许用户提交表单。
<asp:RegularExpressionValidator ID="RegularExpressionValidator7" runat="server"
ControlToValidate="txtLastName"Display="Dynamic" ErrorMessage="Numeric characters only"
ForeColor="Red" ValidationExpression="^[0-9]*$"
此外,您还应该使用tryParse
或Int32.Parse()
;如果传递空字符串,后者返回0。