就是資料表的ID值為一固定長度,但如同流水號一樣編碼?
舉例來講,第一筆資料為00001,第15筆資料為00015
一般來講我們會怎麼做呢?
我剛開始遇到這個情況時 (好幾年前在當學生做系統時)
都會寫上長長一段 if else
if(n < 10) strID = "0000" + n.ToString()
else if (n < 100) strID = "000" + n.ToString()
..............................
要是位數定長一點,就等於是宣告坎尼的死期了 囧>
所以,如果還有人像坎尼好幾年前那樣笨笨的寫if else的人
記得把下面這兩個string的方法給記起來:PadLeft , PadRight

第一個參數不用講,就是前述情境所說的 要傳入的id值
第二個參數為字串的長度.....就是要回傳的長度
第三個參數為補齊字元,把剩下的長度補齊用
比方說傳入0,會傳出00001這類的字串
傳入@,回傳的字串就會是 @@@@1
最後一個參數是要補齊的方式:有LeftPad和RightPad兩種
LeftPad → 00015 , RightPad → 15000
其實參數講完,上面這個方法的內容也不太需要講了 XD
要注意的就是,傳入的ID記得加1 (因為我是傳入目前最大的ID,新ID必需加1)
Response.Write("New ID is " + GetNewID(1,6,'0',"left"));
上面這串程式碼就會在畫面上顯示出:New ID is 000001
沒有留言:
張貼留言