2012-03-20 1 views
6
Dim insert_coupon_query As String = ("INSERT INTO qa_discountcoupons (id, status_code) VALUES (AUTO_INCREMENT_ID, 5)") 
       Dim cmd_query As New MySqlCommand(insert_coupon_query, objConn) 
       Dim cmd_result As Integer = CInt(cmd_query.ExecuteScalar()) 

Я хочу вернуть значение AUTO_INCREMENT текущей вставки и показать в msgbox.Возврат Последний идентификатор (IDENTITY) Вставить строку VB.NET MySQL

+0

Действительно ли вы передаете идентификатор, который предлагает запрос? Или это действительно автоинкремент? В MySQL вы можете выбрать 'LAST_INSERT_ID', чтобы получить последний автоматически сгенерированный идентификатор в транзакции. – David

+0

Нет, ИД генерируется MySQL, я только передаю код состояния –

ответ

13

Вы можете использовать двойной запрос и использовать функцию LAST_INSERT_ID() После запуска первого запроса, чтобы получить последний текущий запрос:

Dim insert_coupon_query As String = ("INSERT INTO qa_discountcoupons (status_code) VALUES (5); SELECT LAST_INSERT_ID()") 
       Dim cmd_query As New MySqlCommand(insert_coupon_query, objConn) 
       Dim cmd_result As Integer = CInt(cmd_query.ExecuteScalar()) 

       MsgBox(cmd_result) 
+0

Он отлично работает !, Спасибо –

+0

Никогда не думал, что мы можем использовать двойной запрос в инструкции vb.net sql. Это помогает получить номер автоинкремента из столбца ID. Спасибо. – surpavan

0

Вы можете получить значение AUTO_INCREMENT для таблицы через MySQL query, а затем показать, что в вашем MsgBox

Смежные вопросы