Ao adicionar novo registro trazer o código definitivo e não -1, -2...

17/09/2013

Olá, tenho um Windowsform para cadastro em um BD Access, no bindingnavigator tem o botão adicionar novo registro, como fazer para trazer o código definitivo do registro e não -1 .
Pois ele só mostra o código definitivo depois de salvar, gostaria que ao clicar em adicionar já mostrasse o código certo da sequencia de cadastro.
Abaixo imagem para melhor entendimento.

[url]http://uploaddeimagens.com.br/imagens/codigo_-1-png[/url]

Jair Souza

Melhor resposta

30/09/2013

Foram necessárias duas barras por que uma barra sozinha indica um caractere de escape (\n, \w, \T, etc). Quando você coloca duas barras, isso é interpretado como uma barra que deve ser inserida literalmente naquele ponto.
Enfim, que bom que deu certo.
Tópico concluído.

Joel Rodrigues

Responder Citar

Outras Respostas

17/09/2013

Fabiano Carvalho

tente colocar max(id) + 1 na consulta que gera esse ID;
Responder Citar

17/09/2013

Jair Souza

Como mencionei acima, o botão adicionar é criado automaticamente no BindingNavigator quando arrastei o BD access para dentro do projeto, não foi criado pelo programador, portanto não tenho acesso ao código e se tenho não como acessar...
Responder Citar

18/09/2013

Jair Souza

Olá, alguem tem alguma idéia do que fazer...? eu não tenho a mínima direção...
Responder Citar

18/09/2013

Joel Rodrigues

Você pode fazer o que o amigo acima indicou, mas não é seguro, pois o autoincremento não necessariamente vai ser o próximo número na sequência (algum registro pode ter sido excluído);
Você precisaria executar um select max(id) e exibir esse valor no campo.
Responder Citar

18/09/2013

Jair Souza

Certo, e como se faz ? Podes dar um exemplo ?

Desde já agradeço.
Responder Citar

18/09/2013

Jair Souza

Seria assim ?
...ou tem algo errado ?
Select MAX( F.IDFuncionario )+ 1 
From Funcionario F
Where (F.IDFuncionario) = textboxIdFuncionario
Responder Citar

18/09/2013

Joel Rodrigues

Rapaz, você tem que saber executar instruções SQL usando ADO. Acho que no seu caso você vai usar OleDb.
Pesquise sobre como fazer isso.
Responder Citar

25/09/2013

Jair Souza

Olá, depois de algumas pesquisas e adaptações cheguei neste código, mas não funciona que dever estar errado ?

public static string pCodigo(string IDCodigo, string Funcionario)
{
//String de Conexão do Banco de Dados

String Conexao = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Application.StartupPath & " bDBiblioteca2DataSet.mdb");

//Faz uma Consulta no Banco, Para Ver o Próximo Código

String query = ("SELECT MAX(" + IDCodigo + "+1") From + Funcionario, Conexao")

//TextBox Código Recebe o Próximo Código
string Resultado = Comando.ExecuteScalar().ToString();


//Caso o Resultado Seja Nulo Ou seja, é o Primeiro Código
if (Resultado != "")
{
return Resultado;
}
else
{
return "1";
}
}
Responder Citar

25/09/2013

Joel Rodrigues

Deve dar um erro na string de conexão, quando você usa o &. O correto seria concatenar as strings usando o sinal de adição (+).
Responder Citar

25/09/2013

Jair Souza

Fiz alguns ajustesm até sumir a maioria dos sublinhados em vermelho, mas ficou dois que não consegui...se puderes verificar todo código, pois não sei mais o que fazer....
abaixo a imagem do código.

Desde já agradeço pela paciência...

[url]http://uploaddeimagens.com.br/imagens/select_max_id-png[/url]
Responder Citar

26/09/2013

Joel Rodrigues

O primeiro erro é a String que está escrita errada. As aspas devem envolver toda a String.
O segundo erro é a falta dos parênteses no método ExecuteScalar().
Responder Citar

26/09/2013

Jair Souza

Olá, não está fácil...parece estar tudo certo, mas o ExecuteScalar não tem jeito, se puder quebra mais essa.

[url]http://uploaddeimagens.com.br/imagens/executescalar-png[/url]
Responder Citar

26/09/2013

Joel Rodrigues

Nossa, cara. ExecuteScalar é um método do SqlCommand e você está chamando a partir de uma String. Se você olhar a mensagem de erro, vai entender, pois lá deve dizer que o método não existe.
Responder Citar

26/09/2013

Joel Rodrigues

Repare que você não tem nenhum objeto de conexão com o banco, só tem strings. Logo, nunca vai selecionar nada. Falta ai, por exemplo, uma SqlConnection e um SqlCommand.
Infelizmente não estou no PC agora, mas amanhã eu faço um exemplo pra você, pois pelo jeito está difícil mesmo.
Responder Citar

28/09/2013

Jair Souza

Montei o metodo...mas está dando erro do nome do bd, veja a imagem :

[url]http://uploaddeimagens.com.br/imagens/max_id___1-png[/url]
Responder Citar