VB.NET COM BANCO DE DADOS MYSQL - INSERT + SELECT

JORGEPTEC 29/09/2015 13:40:36
#451916
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!
JABA 29/09/2015 14:50:38
#451923
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
ACCIOLLY 29/09/2015 15:46:26
#451927
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:

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
ACCIOLLY 29/09/2015 15:52:54
#451929
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