2017-09-13 131 views
0

當我將一個號碼保存到我的mysql數據庫中時,其中有一個「000」,它只變成「0」保存編號000

例如,我的數據是這樣的。

名稱:雛菊約翰遜>

年齡:23​​

TIN ID:123-456-789-000

當我把它保存在我的數據庫將是喜歡這個。

名稱:雛菊約翰遜

年齡:23​​

TIN ID:123-456-789-0

有什麼建議?

Dim sup1 As String = Val(txttin1.Text) 
    Dim sup2 As String = Val(txttin2.Text) 
    Dim sup3 As String = Val(txttin3.Text) 
    Dim sup4 As String = Val(txttin4.Text) 
    Dim tinid As String = sup1 + sup2 + sup3 + sup4 
    tinid = sup1 + "-" + sup2 + "-" + sup3 + "-" + sup4 
+3

'123-456-789-000'不是數字 - 你不能加上或減去它,而'-'不是一個數字,所以你不知道你在做什麼, – Plutonix

+2

你是否將整個文本保存在一列?這一列的數據類型是什麼?難道只是因爲你超過了允許的字符長度而導致你的文本被截斷了嗎?你需要顯示你的代碼。 – Filburt

+0

是的,我將整個文本保存在一列中。 TIN ID的Tha數據類型是VARCHAR。 @Filburt – Sadnerd

回答

4

變化

Dim sup4 As String = Val(txttin4.Text) 

Dim sup4 As String = txttin4.Text.Trim() 

(所有SUP變量)

Val從字符串中返回一個數字。請參閱Val Function

更好的是,如果您需要的數字有三位數字,則可以格式化字符串。瓦爾在這裏告訴他們這是一個數字。

Dim tinid As String = String.Format(
    "{0:000}-{1:000}-{2:000}-{3:000}", 
    Val(txttin1.Text), 
    Val(txttin2.Text), 
    Val(txttin3.Text), 
    Val(txttin4.Text)) 

所以,如果用戶輸入「45」,它將被格式化爲「045」,例如。您還應該首先對輸入執行一些驗證,以確保用戶實際在文本框中輸入了一個數字。

1

根據你使用這個代碼的註釋:

Dim sup1 As String = Val(txttin1.Text) 
Dim sup2 As String = Val(txttin2.Text) 
Dim sup3 As String = Val(txttin3.Text) 
Dim sup4 As String = Val(txttin4.Text) 
Dim tinid As String = sup1 + sup2 + sup3 + sup4 
tinid = sup1 + "-" + sup2 + "-" + sup3 + "-" + sup4 

首先,爲什麼你給的值來tinid,你只是不使用它,然後設置其他值?

其次,Val函數將您的表達式轉換爲Double,這就是爲什麼您的零被刪除。 您的代碼應該是這樣的:

Dim sup1 As String = txttin1.Text 
Dim sup2 As String = txttin2.Text 
Dim sup3 As String = txttin3.Text 
Dim sup4 As String = txttin4.Text 
Dim tinid As String = sup1 + "-" + sup2 + "-" + sup3 + "-" + sup4 

最後,你的問題無關,與mysql