Mysql 无法获取插入记录的id

Mysql 无法获取插入记录的id,mysql,vb.net,Mysql,Vb.net,我正在使用VisualStudio2010将记录插入MySql中的表中。该表的设置如下所示: id-主键-自动递增 第一个-瓦尔查尔(45) last-varchar(45) 当我插入一条新记录时,我想知道该记录的id值 我将此查询添加到名为“insertQuery”的tableAdapter中。使用选择@@identity以获取id INSERT INTO `results` (`first`, `last`) VALUES (@p1, @p2); select @@identity;

我正在使用VisualStudio2010将记录插入MySql中的表中。该表的设置如下所示:

  • id-主键-自动递增
  • 第一个-瓦尔查尔(45)
  • last-varchar(45)
当我插入一条新记录时,我想知道该记录的id值

我将此查询添加到名为“insertQuery”的tableAdapter中。使用
选择@@identity以获取id

INSERT INTO `results` (`first`, `last`) VALUES (@p1, @p2); select @@identity;
这是我的密码:

Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.ResultsTableAdapter.Fill(Me.myDataSet.results)

        test()

        Me.Close()
    End Sub

    Private Sub test()
        Dim newID As Integer

        newID = Me.ResultsTableAdapter.InsertQuery("John", "Smith")

        MsgBox(newID.ToString)
    End Sub
End Class
记录被正确插入数据库,但问题是my newID变量的值始终为1

知道为什么吗?

使用mysql\u insert\u id()函数,如图所示


好的,我终于可以让它工作了。我所需要做的就是将查询的
ExecuteMode
属性从NonQuery更改为Scalar


我在本周早些时候做了这项工作,今天某个时候我以某种方式改变了那项财产。我快要发疯了,哈哈。

这是相同的代码。我所要做的就是在tableAdapter中选择查询,以便在properties窗口中显示其属性。然后将ExecuteMode更改为Scalar。
if ((result = mysql_store_result(&mysql)) == 0 &&
mysql_field_count(&mysql) == 0 &&
mysql_insert_id(&mysql) != 0)

{
  used_id = mysql_insert_id(&mysql);
}