根据数据库中的max-value生成新ID

时间:2014-04-25 10:22:17

标签: mysql database

我试图让我的程序根据数据库中已有的最高ID号生成新的标识。

    Dim kobling As New Tilkobling
    Dim hentOrdreNummer As String = "SELECT MAX(ordreID) FROM bestilling"
    Dim svar As DataTable
    bOrdreID = hentOrdreNummer + 1

    kobling.sporring(user, password, hentOrdreNummer)
    svar = kobling.hentData()

所有这些返回的原因是sql-command(由于我假设的字符串/整数,它崩溃了+1)。有一个简单的方法吗?

新代码:

Dim kobling As New Tilkobling
        Dim hentOrdreNummer As String = "SELECT * FROM bestilling"
        Dim svar As DataTable
        kobling.sporring(user, password, hentOrdreNummer)
        svar = kobling.hentData()
        Dim temprad As DataRow
        Dim nyID, modID As String
        For Each temprad In svar.Rows
            nyID = temprad("ordreID")
            modID = nyID + 1
            bOrdreID = modID

这是有效的,其中,它以最低的数字开头,我收到一条错误消息,直到它到达一个尚未拍摄的数字。

工作代码:

 Dim kobling As New Tilkobling
        Dim hentOrdreNummer As String = "SELECT MAX(ordreID) AS ordreID FROM bestilling"
        Dim svar As DataTable
        kobling.sporring(user, password, hentOrdreNummer)
        svar = kobling.hentData()
        Dim temprad As DataRow
        Dim nyID, modID As String
        For Each temprad In svar.Rows
            nyID = temprad("ordreID")
            modID = nyID + 1
            bOrdreID = modID

2 个答案:

答案 0 :(得分:0)

试试这个:

SELECT IFNULL(MAX(ordreID),0)+1 FROM bestilling

它将返回新的可能ID,即max(id)+1。

答案 1 :(得分:0)

您需要建立与数据库的连接,并实际针对它运行SQL。 然后创建一个变量来将结果存储在结果中,并将+ 1存储到结果中。 你不能简单地声明一个" SELECT字符串。 。 。 。 "然后期望加上+ 1。