BUSCAR ID COM VB.NET E MYSQL
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?
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?
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()
Dim dt As New DataTable
da.Fill(dt)
textbox1.Text = dt.Rows(0).Item(0).ToString
dt.Dispose()
da.Dispose()
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.
Tipo :[Ô] SELECT LAST_INSERT_ID(ID) AS ID FROM TBLDESEJADA[Ô]
Joga isso num DataSet ou num DataReader e pronto.
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.
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.
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.
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.
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...
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