2 回答

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊
首先,你的錯(cuò)誤提示和你傳的代碼不匹配。錯(cuò)誤提示是字符串轉(zhuǎn)時(shí)間類型出錯(cuò),而代碼里面是querystring中的參數(shù)轉(zhuǎn)化成int32。
其次,querystring當(dāng)中的參數(shù)在使用前要先判斷這個(gè)參數(shù)是否存在,即:
if(Request.QueryString["id"]!=null)
最后,獲取參數(shù)后要轉(zhuǎn)換成字符串并去除可能有的后置空格,如下
int id = Convert.ToInt32(Request.QueryString["id"].tostring().trim());

TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊
Convert.ToInt32()只負(fù)責(zé)把"12345"或者"5678"這樣的字符串轉(zhuǎn)換為整數(shù),而"1ar3243"或者"2013-0306"這樣的不符合數(shù)字規(guī)則的在轉(zhuǎn)換的時(shí)候就會(huì)出現(xiàn)錯(cuò)誤。
所以要加入錯(cuò)誤捕捉
int id=-1; try { id = Convert.ToInt32(Request.QueryString[ "id" ]); } catch {} if (id > -1) { //....在這里加入正常執(zhí)行的代碼 } else { //錯(cuò)誤提示:比如ID錯(cuò)誤 } |
添加回答
舉報(bào)