2008年6月11日

自定固定長度流水號的方法

不知道有沒有人在開發系統時有沒有這個困擾?
就是資料表的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

沒有留言:

Google Spreadsheet 裡用規則運算式

最近因為工作關係,遇到要用 Google Form 及 Google Sheet 所以研究了 Google Sheet 裡的一些 function 怎麼用 首先,分享一下如何在 Google Sheet 裡用規則運算 :D