Ir para conteúdo
Fórum Script Brasil
  • 0

Gerar número de matrícula automário no BD.


ƒ Edu ƒ

Pergunta

Olá galera.

Estou utilizando C# para fazer uma tela de cadastro de alunos, ao clicar em registrar, os dados do formulário são inseridos no banco de dados, mas neste momento deve ser gerado o código do aluno automaticamente e inserido junto com os outros dados no BD...

Eu possuo o código mas em Visual Basic vejam:

If rs.RecordCount = 0 Then
        codigo = 1
    Else
        rs.MoveLast
       codigo = rs("codaluno") + 1
    End If
No C# consegui chegar até este código: Declarei a variável int codigo.
if (dr.HasRows == true)
            {
                 codigo = 1;
            }
            else
            {
                 dr.Read();
                 codigo = dr.NaoSeiQual("codaluno") + 1;
            }

O problema é que não sei qual a propriedade que refere-se ao registro da coluna ("codaluno") para adicionar +1 caso já exista algum...

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

eu já não vejo um código como esse há muito tempo, rs, porque você não define a chave primária da tabela com auto-incremento? desse jeito aí, se 2 pessoas inserirem um registro ao mesmo tempo, com certeza vai dar pau pra 1 dos 2 lados, a não ser q você esteja usando transação, q não deve ser o caso, enfim, não programo em c#, somente em vb/asp .net, mas pelo q entendi, você não precisa definir propriedade nenhuma para o data reader (dr), é só você colocar o nome do campo logo depois do dr, assim como você fez lá em cima com o record set (rs) do vb6, assim:

codigo = dr("codaluno") + 1;

Link para o comentário
Compartilhar em outros sites

  • 0
eu já não vejo um código como esse há muito tempo, rs, porque você não define a chave primária da tabela com auto-incremento? desse jeito aí, se 2 pessoas inserirem um registro ao mesmo tempo, com certeza vai dar pau pra 1 dos 2 lados, a não ser q você esteja usando transação, q não deve ser o caso, enfim, não programo em c#, somente em vb/asp .net, mas pelo q entendi, você não precisa definir propriedade nenhuma para o data reader (dr), é só você colocar o nome do campo logo depois do dr, assim como você fez lá em cima com o record set (rs) do vb6, assim:

codigo = dr("codaluno") + 1;
O C# não aceita esta sintax
codigo = dr("codaluno") + 1;
Teria que ser assim:
codigo = dr["codaluno"] + 1;
Mas também não da: Error Operator '+' cannot be applied to operands of type 'object' and 'int' Se eu tento assim também não resolve:
codigo = (dr["codaluno"] )+ 1;

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...