2017-05-30 93 views
0

我想在我的vb程序中生成一個id,它將得到最新的自動遞增數字,並將添加一個,但我的代碼不工作我是否缺少某些東西或我做錯了嗎?請幫幫我!謝謝!在SQL中使用vb在自動增量值中添加+1

下面是代碼:

OpenServer() 
    Dim num As Integer 
    Dim num1 = num + 1 
    Newdataset("SELECT MAX(IDnum) AS IDnum FROM addnewemployee WHERE IDnum = '" & num & "' ") 
    txtEmpNumber.Text = "" & num1 & "." & dtpdatehired.Value.ToString("yyyyMMdd") & "" 
+0

什麼數據庫平臺? – OldProgrammer

+0

它的Mysql數據庫平臺 – Charles

+0

在你檢索num之前,你好像正在增加'num1' **。這不起作用。 –

回答

0

你的方法有幾個缺陷。

首先,你的SQL語句應該是:

SELECT MAX(IDnum) AS IDnum FROM addnewemployee 

這將從addnewemployee表中獲得最高IDnum。這個問題是,如果更高的記錄已被創建和刪除。假設你得到的返回值爲。有可能創建並刪除ID爲的記錄。

你真的想使用的查詢是

SHOW TABLE STATUS WHERE `Name` = 'addnewemployee' 

哪裏得到一列名爲Auto_increment。從數據集中獲取該值,然後對其進行增加。

但是這是一個壞主意要做到這一點。

如果您有多個相關插入,您可以選擇retrieve the id at the time of insert並將其存儲在變量中。或者更好的是在一個語句或存儲過程中做所有事情。