2013-01-14 141 views
0

在Asp.net用C#中,我有添加文本框

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

時,我有一個空的文本框價值觀,我得到錯誤「輸入的字符串不是正確的格式」。

所以,我想知道如果有一個簡單的方法來添加文本框的值只有他們是整數,如果不採取文本框的值作爲事先0

謝謝!

+3

'int.TryParse'。 – SLaks

回答

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; 
3

您可以使用Int32.TryParse方法

文檔MSDN

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" /> 
1

編寫該

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

的擴展方法和使用它像這樣:

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

使用的TryParse ..

int iFirstVal= 0; 
int iSecondVal= 0; 

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

int sum = iFirstVal + iSecondVal 
1

使用try解析,以確保文本框的包含有效的輸入(將輸入限制爲僅數字)。

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