使用vb在SQL中的自动增量值中添加+1

时间:2017-05-30 02:04:39

标签: sql vb.net visual-studio-2015

我想在我的vb程序中生成一个id,它将获得最新的自动递增数字,并且会添加一个,但我的代码不工作,我错过了一些东西或者我做错了吗?请帮我!谢谢!

以下是代码:

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") & ""

1 个答案:

答案 0 :(得分:0)

你的方法有几个缺陷。

首先,您的SQL语句应为:

SELECT MAX(IDnum) AS IDnum FROM addnewemployee

这将从IDnum表中获得最高addnewemployee。这样做的问题是如果创建并删除了更高的记录。假设您得到 55 的返回值。可能已创建并删除ID为 56 的记录。

您真正想要使用的查询是

SHOW TABLE STATUS WHERE `Name` = 'addnewemployee'

哪里会有一个名为Auto_increment的列。从数据集中获取该值,然后递增它。

这样做是个坏主意

如果您有多个依赖插入,则可以使用retrieve the id at the time of insert并将其存储在变量中。或者更好的是仍然在一个语句或存储过程中执行所有操作。