正在添加文本框值

本文关键字:文本 添加 | 更新日期: 2023-09-27 17:52:54

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

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

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

所以,我想知道是否有一种简单的方法可以添加文本框值——如果不将文本框值设为0,那么它们就是整数。

提前感谢!

正在添加文本框值

您可以使用Int32.TryParse方法

MSDN 文档

您可以将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;
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" />

为这个编写一个扩展方法

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

并像这样使用:

int sum = txtbox1.Text.NullOrEmptyToZero() + txtbox2.Text.NullOrEmptyToZero();

使用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

使用TryParse。。

int iFirstVal= 0;
int iSecondVal= 0;
int.TryParse(txtbox1.Text, out iFirstVal))
int.TryParse(txtbox2.Text, out iSecondVal))
int sum = iFirstVal + iSecondVal