Nello svilluppo di una piccola applicazione per la gestione di una biblioteca personale ho creato un database “Biblioteca” con una sola tabella: Libri.
Tabella LIBRI
Successivamente ho creato una Windows Form per la ricerca dei libri contenuti nel database e poi un’altra per poterli scorrere uno ad ud uno e per poter effettuare inserimenti e cancellazioni.Form Inserimento Libro nel database Biblioteca
Durante il testing di questa Windows Form mi sono accorto che se tentavo di salvare le modifiche successivamente ad un inserimento veniva lanciata un eccezzione Sql, la quale mi indicava che IDENTITY_INSERT si set to OFF. Per poter fare l’inserimento era necessario settarlo ad on. Ho risolto il problema differentemente, cioè modificando l’istuzione Sql Insert.

L’istruzione originaria era questa:
INSERT INTO [Libri] ([ID], [Titolo], [Autore], [CasaEditrice], [Locazione], [Descrizione]) VALUES (@ID, @Titolo, @Autore, @CasaEditrice, @Locazione, @Descrizione);
L’ho cambiata in quest’altra:
INSERT INTO Libri (Titolo, Autore, CasaEditrice, Locazione, Descrizione)
VALUES (@Titolo,@Autore,@CasaEditrice,@Locazione,@Descrizione)

Vi domanderete perchè tutto questo? Semplicemente perchè il campo ID (chiave primaria) avendo impostata a “” l’identità è un campo autogenerante e readonly, quindi il suo valore non puo essere forzato.
Ora funziona tutto correttamente! ;)

Se i miei post ti sono stati di aiuto o ti sono sembrati intressanti puoi offrirmi un caffè :)