none
Duvida com dataset RRS feed

  • Pergunta

  • Ola

    quando eu estava tentando fazer o formulario via dataset me ocorria um erro estranho que eu não consegui resolver.

    Eu tinha os registros com 2 colunas, cod e nome ..... onde o código é identity no BD .... mas no gridview com o "adding" habilitado, ao clicar na ultima linha para incluir um registro, o cod não assumia a numeração, ele sempre assumia o valor -1.

    por exemplo meu ultimo registro tinha cod 4, o prox teria q ser 5, mas ao clicar na linha do gridview o cod vinha como -1.
    Não conseguir resolver, a unica forma foi desistir de habilitar inclusão no dataset e criar outro form somente pra inclusao.

    mas fiquei intrigado e gostaria de saber dos mais experiente se tem como resolver esse problema do campo identity vir como -1 qdo usa-se dataset.
    terça-feira, 24 de fevereiro de 2009 20:52

Respostas

  • Ah agora entendi...

    Bem.. nesse caso... eu removo o textbox com o codigo... e coloco outro somente leitura no lugar....

    Durante a inclusao eu seto o texto dele como null e depois da inclusao coloco o codigo gerado...

     

    • Marcado como Resposta Douglas Luiz sábado, 25 de abril de 2009 15:05
    sexta-feira, 27 de fevereiro de 2009 22:54
    Moderador

Todas as Respostas

  • Na verdade a numeração so vai ser definida apos a postagem dos dados, nunca antes para evitar coincidencia de dados, pois se dois usuarios abrirem a tela ao mesmo tempo... na hora de gravar iram gravar o mesmo codigo.

    Normalmente não se mostra ao usuario os codigos autoincrementais na grid....
    quarta-feira, 25 de fevereiro de 2009 19:21
    Moderador
  • mas como fazer entao?? pq minha ideia inicial era utilizar o gridview ou details view para consultar/alterar/incluir e excluir.

    o problema é que o grid abre inicialmente como forma de consulta aos dados, mas o clicar para adicionar mu novo registro,  o cod q é a chave primaria e portanto auto incremento, assume o valor de -1 ..... nao tem uma forma de "forçar" ele a assumir o valor do ultimo registro + 1???
    quarta-feira, 25 de fevereiro de 2009 21:17
  • Olha pessoalmente eu nao gosto de fazer inclusao dentro de grids... eh ruim para formatar e validar os campos... alem de nao ser uma forma natural para o usuario que esta habituado a preencher formularios (isso vem das velhas fichas de papel);

    Não seria possivel sempre q o usuario clicar em incluir vc abrir um outro formulario para a inclusao dos dados... sem o campo de incremento... ai quando o usuario clicar em ok... fecha o formulario... atualiza a grid e ja seleciona o registro... mostrando o codigo correto... ?

    É so uma ideia...
    quinta-feira, 26 de fevereiro de 2009 22:05
    Moderador
  • Oi Rui, na verdade foi isso que eu fiz, configurei q ao dar dois cliques na linha do grid, abre um formulario pra inclusao sem o "cod" dai o usuario insere e ja atualiza o grid.

    Eu fiquei instigado qto ao grid, pq qdo vc cria um dataset e arrasta ele pra dentro de um form, ele automaticamente te cria as barra de navegação entre registros, mais os botoões de delete, salvar, e incluir .... e qdo  clica no icone do botao de incluir o codigo ficava -1.

    Vc falou q  nao gosta de fazer inclusão no grid, mas no dataset vc pode configurar como detail, dai ele vem em forma de formulario mesmo .... mas o problema do auto incremento com valor sempre -1 continua.

     

    mas td bem, resolvi da mesma maneira q vc sugeriu, apenas achei q era algum bug no meu codigo, e que com algum ajuste ele funcionaria.

     

    abraço e obrigado pela sugestão e pela ajuda.

     


    sexta-feira, 27 de fevereiro de 2009 21:20
  • Ah agora entendi...

    Bem.. nesse caso... eu removo o textbox com o codigo... e coloco outro somente leitura no lugar....

    Durante a inclusao eu seto o texto dele como null e depois da inclusao coloco o codigo gerado...

     

    • Marcado como Resposta Douglas Luiz sábado, 25 de abril de 2009 15:05
    sexta-feira, 27 de fevereiro de 2009 22:54
    Moderador
  • Douglas,

    Acho que isso ira solucionar suas duvidas.


    http://msdn.microsoft.com/en-us/library/ks9f57t0(VS.80).aspx


    Abraço,
    Nelson Borges - Analista de Sistemas
    domingo, 1 de março de 2009 03:59