当前位置: 首页 > 知识库问答 >
问题:

向MySQL插入数据后如何获取插入ID[重复]

居乐池
2023-03-14

我有一个MySQL数据表,详细信息如下:

ID (int format) [AUTO_INCREMENT] 
date (varchar) 
ip (varchar)
activate(varchar) 
cdkey(varchar)

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Using SQLConnection As New MySqlConnection(ConnectionString)
            Using sqlCommand As New MySqlCommand()
                With sqlCommand
                    .CommandText = "INSERT INTO software (`date`, `ip`, `activate`, `cdkey`) values (@date,@ip,@activate,@cdkey)"
                    .Connection = SQLConnection
                    .CommandType = CommandType.Text
                    .Parameters.AddWithValue("@ip", Label1.Text)
                    .Parameters.AddWithValue("@date", TextBox2.Text)
                    .Parameters.AddWithValue("@activate", "Yes")
                    .Parameters.AddWithValue("@cdkey", textbox4.Text)



                End With
                Try
                    SQLConnection.Open()
                    sqlCommand.ExecuteNonQuery()
                    iReturn = True
                    MsgBox("Display Last Insert ID here")

                Catch ex As MySqlException
                    MsgBox(ex.Message.ToString)
                    iReturn = False
                Catch ex As Exception
                Finally
                    SQLConnection.Close()
                End Try
            End Using
        End Using
        Return
    End Sub

它正在工作,只是我正在尝试在插入数据后从数据库中获取id号。我该怎么做?

共有1个答案

麹学文
2023-03-14

您应该将查询更改为

  .CommandText = "INSERT INTO software (`date`, `ip`, `activate`, `cdkey`) 
                  values (@date,@ip,@activate,@cdkey);
                  SELECT LAST_INSERT_ID();"

然后,您将不调用ExecteNonQuery,而是调用ExecteScalar,并从LAST_INSERT_ID()中返回值

   Dim newID As Integer = sqlCommand.ExecuteScalar()
 类似资料:
  • 问题内容: 我正在掌握PDO的基础知识。 但是我试图获取插入的行的ID,我使用: 我遇到的教程都是关于交易的,但是我没有使用交易! 问题答案: 您可能正在寻找lastInsertId。“返回最后插入的行或序列值的ID”。

  • 问题内容: 当我插入一行时,表格的“ id”字段会自动增加。我想插入一行,然后获取该ID。 我会按照我说的去做,但是有没有办法我不用担心插入行和获取ID之间的时间呢? 我知道我可以在数据库中查询与输入的信息相匹配的行,但是变化很大,将有重复项,唯一的区别是id。 问题答案: 请参阅。 无论您做什么,都不要插入“ ”。就像您说的那样,这是比赛条件,没有必要。已经具有此功能。

  • 问题内容: 我正在使用PHP中的mvc结构,我想检索最后插入的行ID。 我创建了以下sql代码: 但不幸的是我遇到了这个错误: 我也尝试过此堆栈链接,但不适用于我,因此如果您能帮助我获取ID,我将非常高兴。 我也在这里共享我的controller.php文件。 问题答案: 你快到了。 如果您查看lastInsertId的手册页,则会在数据库句柄上调用它- 您当前正在语句中对其进行调用。 您只需要致

  • 问题内容: 我执行INSERT INTO语句 我想获取主键。 我的表有2列: 我刚刚插入了这个,如何获得“ id”? 问题答案: 使用得到插入光标对象的最后一行ID,或者从该连接上最后插入获取的ID。

  • 我插入批量插入laravel 5像这样: 知道如何获取最后一个插入的id吗?

  • 问题内容: 这个问题已经在这里有了答案 : 9年前关闭。 可能重复: 如何在JDBC中获取插入ID? 嗨,我正在使用JDBC通过Java连接数据库。 现在,我执行一些插入查询,并且需要获取最后插入值的ID(因此,在之后)。 我不需要类似之类的东西,因为我可能有并发问题。 我只需要检索与上一次插入相关的ID(关于我的Statement实例)。 我试过了,但是似乎在JDBC上不起作用: 实际上,每次,