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

Posted

技术标签:

【中文标题】将数据插入MySQL后如何获取插入ID [重复]【英文标题】:How to get Insert ID after inserting data to MySQL [duplicate] 【发布时间】:2019-01-16 04:05:27 【问题描述】:

我有一个 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】:

您应该将查询更改为

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

然后调用 ExecuteScalar 而不是 ExecuteNonQuery 并从 LAST_INSERT_ID() 取回值

   Dim newID As Integer = sqlCommand.ExecuteScalar()

【讨论】:

我使用了两个 execuescalar ,一个用于插入,一个用于查询。删除它解决了这个问题。非常感谢您的帮助 如何将此标记为答案?

以上是关于将数据插入MySQL后如何获取插入ID [重复]的主要内容,如果未能解决你的问题,请参考以下文章

MySQL插入,如何从插入中获取增量ID [重复]

使用 PDO 插入时获取自动递增行 ID [重复]

你如何从一个类中获取最后插入的 ID 到重定向 [重复]

如何在使用 Python 插入 MySQL 数据库后获取“id”?

插入后如何立即获取唯一主键ID的值[重复]

mysql 插入数据如何防止重复