添加文本框值

时间:2013-01-14 19:40:07

标签: c# asp.net

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

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

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

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

提前致谢!

6 个答案:

答案 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