在使用c#的Asp.net中,我有
int sum = Convert.ToInt32(txtbox1.Text) + Convert.ToInt32(txtbox2.Text);
当我有一个空文本框时,我收到错误“输入字符串的格式不正确”。
所以,我想知道是否有一种简单的方法来添加文本框值,只有它们是整数,如果没有将文本框值取为0。
提前致谢!
答案 0 :(得分:3)
您可以使用Int32.TryParse方法
文档MSDN
答案 1 :(得分:1)
您可以将TextBox
的默认值设置为0
,也可以使用TryParse
:
int val1, val2;
Int.TryParse(txtbox1.Text,out val1));
Int.TryParse(txtbox2.Text,out val2));
int sum = val1 + val2;
请注意,如果解析失败,则无需将值设置为0,因为它们无论如何都将为0。但是,如果你想要明确,那么:
int val1, val2;
if(!Int.TryParse(txtbox1.Text,out val1))) val1 = 0;
if(!Int.TryParse(txtbox2.Text,out val2))) val2 = 0;
int sum = val1 + val2;
答案 2 :(得分:1)
int integer;
Int32.TryParse(Textbox1.Text, out integer)
int integerSecond
Int32.TryParse(Textbox2.Text, out integerSecond)
它将返回一个bool,以便您可以看到它们是否输入了有效的整数
或者您也可以使用一些验证器:
<asp:CompareValidator runat="server" Operator="DataTypeCheck" Type="Integer"
ControlToValidate="ValueTextBox" ErrorMessage="Value must be a whole number" />
如果存在特定范围的有效值(可能存在),则可以使用RangeValidator,如下所示:
<asp:RangeValidator runat="server" Type="Integer"
MinimumValue="0" MaximumValue="400" ControlToValidate="ValueTextBox"
ErrorMessage="Value must be a whole number between 0 and 400" />
答案 3 :(得分:1)
为此
编写扩展方法public static int NullOrEmptyToZero(this string s)
{
return string.IsNullOrEmpty(s)? 0: ConvertToInt32(s);
}
并像这样使用它:
int sum = txtbox1.Text.NullOrEmptyToZero() + txtbox2.Text.NullOrEmptyToZero();
答案 4 :(得分:1)
使用try parse确保文本框包含有效输入(或仅将输入限制为数字)。
int x, y, result;
if (int.TryParse(txtbox1.Text, x)
{
if (int.TryParse(txtbox2.Text, y)
{
result = x + y;
}
else
//error message
}
else
// error message
答案 5 :(得分:0)
使用TryParse ..
int iFirstVal= 0;
int iSecondVal= 0;
int.TryParse(txtbox1.Text, out iFirstVal))
int.TryParse(txtbox2.Text, out iSecondVal))
int sum = iFirstVal + iSecondVal