Pergunta

Eu só estou ficando sujo em WinForms, e eu descobri, através de um lindo tutorial, a magia de arrastar uma tabela de banco de dados para o modo de design do meu formulário principal.Então, tudo é lindo, eu tenho o meu DataGridView com todas as colunas representada lindamente.

MAS...

Quando eu executar meu aplicativo com esta nova marca, vazio .sdf (vazio exceto por duas tabelas que eu criei, que são próprios vazio), fico com -1 na coluna correspondente ao meu chave primária/coluna de identidade sempre que eu tento criar esse primeiro registro.

Alguma idéia de por que isso pode estar acontecendo?Se isso ajuda, a coluna é uma int.

Foi útil?

Solução

Uma vez que é uma coluna de Identidade e que não estejam salvos no banco de dados ainda é -1.Eu estou supondo aqui que esta é, antes de você salvar a tabela no banco de dados, correto?Você precisa executar a inserção antes de que o valor será definido corretamente.

Outras dicas

@Brian -1 é uma boa escolha para o valor padrão desde que não "real" linhas são susceptíveis de ter identidades menor que zero.Se ele assume o padrão para 0 ou 1, em seguida, haveria uma chance de que ele iria colidir com uma linha existente, fazendo com que uma violação de chave primária.

Para aplicações que ficar off-line e criar várias linhas antes de guardar, uma prática comum é a de continuar a contagem decrescente (-2, -3, -4) para cada nova linha de identidade.Em seguida, quando eles estão salvos, o servidor pode substituí-los com a verdade "próximo" do valor da tabela.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top