BUSCAR ID COM VB.NET E MYSQL

JONATHANSTECKER 14/06/2010 14:38:04
#344763
Boa tarde pessoal,

Tenho uma dúvida...
Estou inserindo alguns dados em uma tabela, onde o primeiro campo é o ID (Autoincrement).
Como faço para após eu cadastrá-lo, eu buscar o valor desse ID?
ADHEL 14/06/2010 15:05:21
#344767
Dim da As New MySqlDataAdapter([Ô]Select Max(Id)From SuaTabela[Ô], CNN)
Dim dt As New DataTable

da.Fill(dt)
textbox1.Text = dt.Rows(0).Item(0).ToString
dt.Dispose()
da.Dispose()
FOXMAN 14/06/2010 16:23:07
#344775
Resposta escolhida
Em Mysql utilize o LAST_INSERT_ID(CAMPO_ID)

Tipo :[Ô] SELECT LAST_INSERT_ID(ID) AS ID FROM TBLDESEJADA[Ô]

Joga isso num DataSet ou num DataReader e pronto.


JONATHANSTECKER 14/06/2010 17:30:21
#344791
FOXMAN,

Funcionou da forma que você apresentou... Resolveu meu problema. Porém...
Pensei em uma situação....

Funciona assim:

Tenho uma tabela principal onde registro as informações base do pedido. E uma outra onde estou registrando cada inicio e parada. Isso com várias pessoas e vários pedidos ao mesmo tempo. Para no final eu ter um relatório de quais pessoas trabalharam neste pedido e quanto tempo cada uma levou.

Cada vez que um usuário iniciar um projeto ele irá clicar num botão onde registrará no banco de dados algumas informações que ele começou a trabalhar neste pedido. Quando ele parar por qualquer motivo, ele clicará num outro botão que irá registrar o momento que parou e o porque.
O problema é que várias pessoas podem fazer esta função num mesmo momento. Sendo assim acho que o banco pode acabar se perdendo ao pegar a última informação.
Pois no Banco principal tenho um campo Status que me informaria qual é o pedido atual que a pessoa está trabalhando. Neste campo eu iria colocar o ID da segunda tabela. Assim depois posso atualiza-lá.

Estou iniciando este banco agora, se alguém tiver uma sugestão de melhor desempenho... Gostaria muito de umas opniões.
FOXMAN 15/06/2010 09:35:12
#344837
JONATHANSTECKER,
Se sua dúvida é com relação à possiblidade de duplicação do ID, acho pouco provável que isso possa ocorrer pois essá função aqui no meu PC retornou em +- (0,0034s).

OU SEJA um piscar de olhos.



JONATHANSTECKER 15/06/2010 09:53:41
#344843
OK Foxman... 100%.

O que o que eu estava preocupado é que eu fazia em três funçoes. Uma eu cadastrava, outra eu buscava o ID e a outra eu incluia no banco principal.
A partir da tua dica eu pesquisei no manual MySQL e vi que não tem erro.

INSERT INTO foo (auto,text) VALUES(NULL,[ô]text[ô]);
INSERT INTO foo2 (id,text) VALUES(LAST_INSERT_ID(),[ô]text[ô]);

Valew pela dica...

Tópico encerrado , respostas não são mais permitidas