Domanda

Mi sto sporcando con WinForms e ho scoperto, attraverso un bellissimo tutorial, la magia di trascinare una tabella di database nella visualizzazione progettazione del mio modulo principale.Quindi, tutto è adorabile, ho il mio DataGridView con tutte le colonne rappresentate magnificamente.

MA...

Quando eseguo la mia applicazione su questo nuovissimo file .sdf vuoto (salvataggio vuoto per le due tabelle che ho creato, che sono esse stesse vuote), ottengo un -1 nella colonna corrispondente alla colonna chiave/identità primaria ogni volta che provo per creare il primo record.

Qualche idea sul perché questo potrebbe accadere?Se aiuta, la colonna è un int.

È stato utile?

Soluzione

Poiché è una colonna Identità e non l'hai ancora salvata nel database, è -1.Presumo che ciò avvenga prima di salvare nuovamente la tabella nel database, corretto?È necessario eseguire l'inserimento prima che il valore venga impostato correttamente.

Altri suggerimenti

@Brian -1 è una buona scelta per il valore predefinito poiché è probabile che nessuna riga "reale" abbia identità inferiori a zero.Se il valore predefinito fosse 0 o 1, ci sarebbe la possibilità che entri in conflitto con una riga esistente, causando una violazione della chiave primaria.

Per le applicazioni che rimangono offline e creano più righe prima del salvataggio, una pratica comune consiste nel continuare a contare all'indietro (-2, -3, -4) per l'identità di ogni nuova riga.Quindi, quando vengono salvati, il server può sostituirli con il vero valore "successivo" della tabella.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top