台灣最大程式設計社群網站
線上人數
1201
 
會員總數:240681
討論主題:186538
歡迎您免費加入會員
討論區列表 >> ASP.NET >> Substring出現錯誤訊息【索引和長度必須參考字串中的位置】
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
Substring出現錯誤訊息【索引和長度必須參考字串中的位置】
價值 : 15 QP  點閱數:165 回應數:4

樓主

Chihyu Yeh
門外漢
0 6
50 3
發送站內信

請問各位大師~
為什麼當我把TEXTBOX(tb_BA) 預設值清空時,就會出現錯誤訊息


錯誤訊息為:索引和長度必須參考字串中的位置。參數名稱: length





搜尋相關Tags的文章: [ Substring ] ,
本篇文章發表於2017-09-14 10:05
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

誰是誰
檢舉此回應
如果 tb_BA.Text 屬性值的字串長度不到 2 ,就會發生這狀況,先檢查它的長度看看吧。
本篇文章回覆於2017-09-14 11:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
不錯的參考

topcat
捐贈 VP 給 topcat 檢舉此回應
>>為什麼當我把TEXTBOX(tb_BA) 預設值清空時,就會出現錯誤訊息
>>Substring出現錯誤訊息【索引和長度必須參考字串中的位置】

其實答案就在您的問題中了
把內容清空,他的長度是?
所以您要tb_BA.Text.Substring(0, 2) 當然就會【索引和長度必須參考字串中的位置】

因此,在執行這行前,是否應該判斷一下,tb_BA的內容長度是否足夠讓他執行?
^.^a
本篇文章回覆於2017-09-14 11:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

Forevertim
檢舉此回應
TEXTBOX(tb_BA) 預設值清空時,就會出現錯誤訊息
if (tb_BA.Text.Substring(0, 2) == Convert.ToString(91))  //錯在這一行

Try Catch~
本篇文章回覆於2017-09-14 14:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
最有價值解答

阿哲
捐贈 VP 給 Jerry 檢舉此回應
1、2樓說的沒有錯當字串的長度為0時,使用Substring去取該字串的前兩個字元,會取不到而發生錯誤

但依據你想判斷前兩個字元是否為91的狀況,可以考慮使用以下語法

這樣子就算TextBox的值為空值時不會發生錯誤,亦能判斷前兩個字元為91的情況


本篇文章回覆於2017-09-14 15:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.