将数据插入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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章