VB.NET COM BANCO DE DADOS MYSQL - INSERT + SELECT
Boa tarde pessoal,
Estou trabalhando em vb.net junto com banco de dados mysql.
é um cadastro simples...
No Form uma textbox para nome, telefone, descrição
No BD um campo para nome, telefone, descricao e numero
Esse campo numero do bd não pode ser autoincrement, pois a cada virada de mês ele vai zerar. é o número anterior + 1
Preciso que no momento que o programa envia os dados do formulário para o banco de dados, ele retorne o número que está no campo numero
Estou fazendo um método insert e depois de completo, mando rodar um select mas acho meio [Ô]manual[Ô] o processo.
Alguem sugere alguma outra forma de fazer isso?
Desde já, obrigado!
Estou trabalhando em vb.net junto com banco de dados mysql.
é um cadastro simples...
No Form uma textbox para nome, telefone, descrição
No BD um campo para nome, telefone, descricao e numero
Esse campo numero do bd não pode ser autoincrement, pois a cada virada de mês ele vai zerar. é o número anterior + 1
Preciso que no momento que o programa envia os dados do formulário para o banco de dados, ele retorne o número que está no campo numero
Estou fazendo um método insert e depois de completo, mando rodar um select mas acho meio [Ô]manual[Ô] o processo.
Alguem sugere alguma outra forma de fazer isso?
Desde já, obrigado!
INSERT INTO table_name (col1, col2,...) VALUES ([ô]val1[ô], [ô]val2[ô]...);
SELECT LAST_INSERT_ID();
https://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html
http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id
SELECT LAST_INSERT_ID();
https://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html
http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id
Partindo do ponto de vista q vc já tenha um método de conexão ao banco, é só analisar a sua regra de negócio.
1º Vc disse q a cada mes o campo [Ô]numero[Ô] deve zerar. Pois então inclua na sua tabela um campo (DATE) Ex: data_Registro
2º Vc deve saber trabalhar com datas pra conseguir recuperar o mes e o ano EX:
3º Com o mes e ano recuperado, é só criar um select pra pegar o ultimo numero daquele mes e daquele ano
4º grave o valor recuperado deste select em uma variável, se não houver registros recuperados, atribua o valor zero a esta variável
5º some esta variável + 1
6º agora vc consegue fazer um insert do jeito q vc quer.
Como viu não é tão simples fazer o que quer em apenas uma linha. Em todo caso a visão q tive da sua problemática foi essa!
Té Mais
1º Vc disse q a cada mes o campo [Ô]numero[Ô] deve zerar. Pois então inclua na sua tabela um campo (DATE) Ex: data_Registro
2º Vc deve saber trabalhar com datas pra conseguir recuperar o mes e o ano EX:
Dim mes as String = DateTime.Now.Month.ToString() [ô]Não me lembro se tem que converter pra string. Mas corrijam se estiver enganado. Na lógica isso passa para a variavel mes o mes atual do relógio. Qualquer coisa pesquisa aà no site do MSDN que vc encontra
Dim ano as String = DateTime.Now.Year.ToString() [ô] a mesma coisa pro ano
3º Com o mes e ano recuperado, é só criar um select pra pegar o ultimo numero daquele mes e daquele ano
[Ô]SELECT numero FROM sua_tabela WHERE MONTH(campo_tabela_data) = [Ô] & mes &[Ô] AND YEAR(campo_tabela_data) = [Ô] & ano & [Ô] ORDER BY numero DESC LIMIT 1[Ô]
4º grave o valor recuperado deste select em uma variável, se não houver registros recuperados, atribua o valor zero a esta variável
5º some esta variável + 1
6º agora vc consegue fazer um insert do jeito q vc quer.
Como viu não é tão simples fazer o que quer em apenas uma linha. Em todo caso a visão q tive da sua problemática foi essa!
Té Mais
Mais uma coisa! seu campo q vc disse q não pode ser autoincrement tambem não pode ser chave primária nem não nulo, pois da forma como vc quer deve haver duplicidade
Faça seu login para responder