簡體   English   中英

使用TableAdapter和MySQL的Last_Insert_Id問題

[英]Last_Insert_Id issues using TableAdapter with MySQL

我在VB.NET TableAdapter插入連接到MySQL數據庫的查詢中使用Last_Insert_Id時遇到問題。 我已經閱讀了該站點上的許多帖子,以及有關Last_Insert_ID和Scope_Identity等的其他帖子。在我的情況下,這些帖子均無效。

有點背景,我有兩個表,一個表保存登錄信息(自動生成的ID,用戶名,密碼)。 另一個表在ID值上具有外鍵關系,並且包含ID,名字,姓氏,城市,州。

在我的TableAdapter中,我有一個Insert查詢,該查詢將值插入第一個表中,並應返回ID值,以便可以在表2上進行插入。

這是我的查詢:

INSERT INTO user_logins (user_login, user_pass)  
VALUES (@p1, @p2)

我想添加Last_Insert_Id進行查詢

INSERT INTO user_logins (user_login, user_pass)
VALUES (@p1, @p2)
SELECT LAST_INSERT_ID();

但是,無論ID是什么,它只會返回值1。 如果打開查詢生成器,則會收到一條消息,指出“無法解析查詢文本”。 我嘗試將ExecuteMode更改為Scalar,但這也無濟於事。

如果我只能在插入后獲得ID值,則插入部分可以正常工作。

有誰知道我可能嘗試的任何方法,或者有其他更好的方法來實現這一目標?

謝謝!

您甚至不需要使用SELECT LAST_INSERT_ID();。 只需INSERT INTO user_logins(user_login,user_pass)VALUES(@ p1,@ p2)就可以了。要檢索最后一個插入ID,可以使用兩種方法

Dim t As Integer
cmd.ExecuteNonQuery()
t = (Int32) cmd.LastInsertedId

要么

t = Convert.ToInt32(cmd.ExecuteScalar())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM