0

在使用 c# 的 Asp.net 中,我有

int sum = Convert.ToInt32(txtbox1.Text) + Convert.ToInt32(txtbox2.Text);

当我有一个空文本框时,我收到错误“输入字符串的格式不正确”。

所以,我想知道是否有一种简单的方法来添加文本框值,只有它们是整数,如果没有将文本框值设为 0。

提前致谢!

4

6 回答 6

3

您可以使用 Int32.TryParse 方法

文档MSDN

于 2013-01-14T19:42:14.400 回答
1

您可以将默认值设置TextBox0,或使用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;
于 2013-01-14T19:45:22.967 回答
1
int integer;
 Int32.TryParse(Textbox1.Text, out integer)

int integerSecond
 Int32.TryParse(Textbox2.Text, out integerSecond)

它将返回一个布尔值,因此您可以查看他们是否输入了有效的整数

或者,您也可以使用一些验证器:

<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" />
于 2013-01-14T19:46:14.133 回答
1

为此编写一个扩展方法

public static int NullOrEmptyToZero(this string s)
{
    return string.IsNullOrEmpty(s)? 0: ConvertToInt32(s);
}

并像这样使用它:

int sum = txtbox1.Text.NullOrEmptyToZero() + txtbox2.Text.NullOrEmptyToZero();
于 2013-01-14T19:47:13.207 回答
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
于 2013-01-14T19:48:21.270 回答
0

使用 TryParse ..

int iFirstVal= 0;
int iSecondVal= 0;

int.TryParse(txtbox1.Text, out iFirstVal))
int.TryParse(txtbox2.Text, out iSecondVal))

int sum = iFirstVal + iSecondVal
于 2013-01-14T19:47:28.750 回答