在Asp.net用C#中,我有添加文本框
int sum = Convert.ToInt32(txtbox1.Text) + Convert.ToInt32(txtbox2.Text);
時,我有一個空的文本框價值觀,我得到錯誤「輸入的字符串不是正確的格式」。
所以,我想知道如果有一個簡單的方法來添加文本框的值只有他們是整數,如果不採取文本框的值作爲事先0
謝謝!
在Asp.net用C#中,我有添加文本框
int sum = Convert.ToInt32(txtbox1.Text) + Convert.ToInt32(txtbox2.Text);
時,我有一個空的文本框價值觀,我得到錯誤「輸入的字符串不是正確的格式」。
所以,我想知道如果有一個簡單的方法來添加文本框的值只有他們是整數,如果不採取文本框的值作爲事先0
謝謝!
您可以在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;
您可以使用Int32.TryParse方法
文檔MSDN
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" />
編寫該
public static int NullOrEmptyToZero(this string s)
{
return string.IsNullOrEmpty(s)? 0: ConvertToInt32(s);
}
的擴展方法和使用它像這樣:
int sum = txtbox1.Text.NullOrEmptyToZero() + txtbox2.Text.NullOrEmptyToZero();
使用的TryParse ..
int iFirstVal= 0;
int iSecondVal= 0;
int.TryParse(txtbox1.Text, out iFirstVal))
int.TryParse(txtbox2.Text, out iSecondVal))
int sum = iFirstVal + iSecondVal
使用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
'int.TryParse'。 – SLaks