Errore su INSERT

di il
11 risposte

Errore su INSERT

Ciao a tutti
nella prima INSERT di una tabella mi da il seguente errrore:
System.Data.SqlClient.SqlException
HResult=0x80131904
Messaggio=Cannot insert the value NULL into column 'Progr', table 'D:\MAGAZZDB.MDF.dbo.TCompon'; column does not allow nulls. INSERT fails.
The statement has been terminated.
Il database è SQL, la tabella TCompon è composta da:
Progr int chiave accesso
CodComp nchar(8)
Descriz nvarchar(30)
Locaz nchar(8)
Classe nchar(8)
La connessione
' Public connString As String = "Data Source=(localdb)\mssqllocaldb;Initial Catalog=D:\MagazzDb.mdf;Integrated Security=True;Pooling=False"
Dim sqlinsert As New SqlCommand("INSERT INTO TCompon(CodComp, Descriz, Locaz, Classe)values (@CodComp, @Descriz,@Locaz, @Classe)", connection)
connection.Open()

sqlinsert.Parameters.AddWithValue("CodComp", campo1)
sqlinsert.Parameters.AddWithValue("Descriz", campo2)
sqlinsert.Parameters.AddWithValue("Locaz", campo3)
sqlinsert.Parameters.AddWithValue("Classe", campo4)

sqlinsert.ExecuteNonQuery()
sqlinsert.Parameters.Clear()

Non ho impostato il campo Progr perchè dovrebbe essere automatico

Dove sbaglio?

grazie per l'attenzione
Franco

11 Risposte

  • Re: Errore su INSERT

    Evidentemente quel campo non è impostato correttamente
  • Re: Errore su INSERT

    Screenshot della tabella
    Allegati:
    16202_548fff9d678d3d4ff82a89ef201a0b86.png
    16202_548fff9d678d3d4ff82a89ef201a0b86.png
  • Re: Errore su INSERT

    Hai impostato l'attributo IDENTITY?
  • Re: Errore su INSERT

    Ciao,
    No, ho impostato le tabelle da Visual Studio, e mi chiede solo la chiave primaria
    Come si imposta?
    Franco
  • Re: Errore su INSERT

    Dall'interfaccia di Visual Studio non so se si può (non la uso).

    Puoi usare il tool SSMS apposito di MS per la gestione completa del DB. Oppure una query del tipo ALTER TABLE table_name
    ALTER COLUMN column_name datatype;
  • Re: Errore su INSERT

    Ciao,
    Con SSMS ho eliminato la colonna Progr e l'ho ricreata. in Proprietà ho controllato la colonna IDENTITY è la Progr
    Ma in esecuzione mi da sempre lo stesso errore
  • Re: Errore su INSERT

    Sicuro di avere lavorato con ssms con lo stesso db che sta usando il tuo programma?
    Non c'è molto altro da dire, la colonna deve essere di tipo IDRNTITY(1,1) e deve funzionare. Farai qualche errore di cui non ti accorgi ma da qui non posso saperlo.
  • Re: Errore su INSERT

    Ciao,
    in effetti il DB su cui lavoravo non era quello modificato da SSMS.
    Adesso ho un nuovo problema. Quando cerco di collegarlo al programma mi dice che non ho le autorizzazioni.
    Ho Win10 pro
    sono andato su SSMS, proprietà DB, autorizzazioni, ho spuntato le prime 5 ma non basta
    Come faccio?
  • Re: Errore su INSERT

    Ma come lo usi col programma? Quale utente usi per accedere al db?

    Non puoi ime con l'uso di sql server, devi studiarne le caratteristiche prima o ti bloccherai in ogni momento.

    In ogni caso questo è un altro problema, altro thread
  • Re: Errore su INSERT

    Ciao, ricapitoliamo la situazione
    Voglio convertire una procedura per una ONLUS da VB6 a VB.net, in quanto per motivi di salute non me ne posso più occupare.
    Per capire ho cominciato ho inziato a convertire un piccolo programma mio con VIsual Studio
    Ho creato un db con tabella Componenti, Locazione e Classe
    Ho caricato la tabella Locazioni e accedo regolarmente
    Caricando la tabella Componenti va in errore sul campo Progr, numerico e chiave primaria, mi dici che non ho impostato il campo IDENTITY
    Ho fatto un db DBProva con 2 colonne ID e Descriz co SSMS, quando vado a collegarmi mi da problemi di autorizzazione
    Penso che il problema sia del DB creato SSMS e aprirò un post per capire come sbloccare un DB.
    Per quanto riguarda l'attributo IDENTITY è possibile impostarlo con SQL?
    non ho avuto il tempo per approfondire
    Grazie per l'attenzione
  • Re: Errore su INSERT

    Ti rispondo io:
    Una volta creato il Db,creato la tabella,impostata la chiave primaria,lasciando per il momento il tipo di autenticazione(windows,sql server o windows e sql server)devi andare nella tabella che ti interessa,la selezioni,tasto destro->progetta e sulla destra vedi tutti i campi della tabella,dove c'è la chiave primaria che deve essere selezionata,vedi nella finestra di sotto dove c'è scritto proprietà della colonna(in questo caso la colonna dove c'è la chiave primaria)ti posizioni dove c'è scritto specifica identity,clicca sulla freccietta e si apre un sotto menù,appena sotto c'è la voce identity per default è no,clicca sulla voce e vedi 2 voci,si e no,tu premi si ed è tutto fato,salva la tabella e vedrai copo non avrai problemi,comunque,oregon,ti aveva già suggerito sul come fare,purtroppo ci sono passato pure io e facendo ricerche stò incominciando a capire sql che niente a che vedere con access,tutto un mondo nuovo.
    Rierche,studi,prove sono la basi.
    Spero di averti aiutato.
    Posto immagine a corredo.
    dbase.JPG
    dbase.JPG

    come puoi vedere ho selezionato la tabella dbo.vinci e a destra si vede come devi fare.
    il tutto devi farlo da ssms per semplificare il procedimento.
Devi accedere o registrarti per scrivere nel forum
11 risposte