2012-03-20 11 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()) 

Chcę zwrócić wartość AUTO_INCREMENT bieżącego insert i pokazać w msgbox.Powrót Ostatni identyfikator (IDENTYFIKACJA) Włącz Wstaw wiersz VB.NET MySQL

+0

Czy rzeczywiście przekazujesz identyfikator zgodnie z sugestią zapytania? Czy to naprawdę automatyczny inkrement? W MySQL możesz wybrać 'LAST_INSERT_ID', aby uzyskać ostatni automatycznie zwiększany ID w transakcji. – David

+0

Nie, identyfikator jest generowany przez MySQL, przechodzę tylko kod statusu –

Odpowiedz

13

Można użyć podwójnego kwerendę i użyć funkcji LAST_INSERT_ID() Po uruchomieniu pierwszej kwerendy, aby uzyskać ostatniego zapytania aktualny:

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

Działa doskonale !, Dzięki –

+0

Nigdy nie myślałem, że możemy użyć podwójnego zapytania w oświadczeniu sql vb.net. Pomaga uzyskać numer auto-inkrementacji z kolumny ID. Dziękuję Ci. – surpavan

0

można pobrać wartość AUTO_INCREMENT na stole przez MySQL query a następnie pokazać, że w MsgBox