4種方法分別對應不同情況
需要被轉換的對象為:obj
1.(int)obj 次方法需要obj儲存的為確切的int類型對象。否則轉換時會拋出異常
2.int.Parse(obj)/ int.TryParse(obj) 需要obj為確切的string類型對象,並且為數字。若不為string則不通過編譯,不為數字則拋出異常
3.int.ParseExact(obj)/ int.TryParseExact(obj) 帶格式轉換的,同上
4.Convert.Int32(obj) 轉換任意類型為int 對象
例如一個Object[string] 對象就需要第四種方法轉換,而Object[int]用第一種方法就可以轉換(拆箱)
以下為引用別人的sql中的字符檢查和轉換
ISNUMERIC
確定表達式是否為一個有效的數字類型。
語法
ISNUMERIC ( expression )
參數
expression
要計算的表達式。
返回類型
int
注釋
當輸入表達式得數為一個有效的整數、浮點數、money 或 decimal 類型,那么 ISNUMERIC 返回 1;否則返回 0。返回值為 1 確保可以將 expression 轉換為上述數字類型中的一種。
但是此函數存在Bug,就是'234a2342'同樣會認為是數字類型
可以替代的寫法是
PATINDEX('%[^0-9]%', @s)
如果返回值等於0,則是純數字型(沒有0~9之外的字符)。
對於支持小數點和正負數寫法是
PATINDEX('%[^0-9|.|-|+]%',@s)