Ciao a tutti e grazie in anticipo per il vostro aiuto.
Devo inserire nella tabella Contatti dei nuovi record tramite form. Richiedo all'utente di inserire tutti i dati necessari in un form, tranne il campo IdContatto che dovrebbe essere automaticamente incrementato dal software.
Dubbio iniziale: ho impostato la proprietà Specifica Identità della colonna IdContatto su SI e Incremento Identità su 1. E' giusto?
Problema vero e proprio: il campo IdContatto che non viene ovviamente richiesto nel form d'inserimento viene sempre settato a 0 appena dichiaro la variabile newCont nel codice, l'applicazione mi dà quindi l'errore "quando identity_insert è OFF non è possibile inserire un valore esplicito per la colonna identity nella tabella contatti".
ecco il codice:
private void addNewContatto()
{
ContattoInserimentoForm cf = new ContattoInserimentoForm();
//form dove vengono inseriti i campi del nuovo contatto
cf.Title="Nuovo Contatto";
if (cf.ShowDialog().Value)
{
Contatti newCont = new Contatti();
//istanza della tabella contatti
//inserisco il valore di IdContatto in un Message Box di prova. Il BOX mi stampa //0, ma questo assegnamento non l'ho ovviamente mai fatto
MessageBox.Show(String.Format("{0}", newCont.IdContatto)); //stampa 0
newCont.Nome = cf.contattoNome.Text;
newCont.Indirizzo = cf.contattoIndirizzo.Text;
newCont.Citta = cf.contattoCitta.Text;
newCont.RecapitiTelefonici = cf.contattoRecapitiTelefonici.Text;
newCont.Mail = cf.contattoMail.Text;
newCont.Note = cf.contattoNote.Text;
this.contattiInfo = ((IListSource)databaseContext.Contatti).GetList();
this.contattiInfo.Add(newCont);
SalvaModifiche.IsEnabled = true;
}
}