99 messaggi dal 21 aprile 2007
Salve ragazzi
ho un problmea con l'ID del database .. in pratica se permetto valori NULL al campo ID mi consente l'inserimento!però non ho un ID per il record .. se non permetto ALLOW NULL mi da questo errore:



Cannot insert the value NULL into column 'Doc_ID', table 'C:\INETPUB\WWWROOT\WEB\APP_DATA\DATABASE.MDF.dbo.upload'; column does not allow nulls. INSERT fails.
The statement has been terminated. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Data.SqlClient.SqlException: Cannot insert the value NULL into column 'Doc_ID', table 'C:\INETPUB\WWWROOT\WEB\APP_DATA\DATABASE.MDF.dbo.upload'; column does not allow nulls. INSERT fails.
The statement has been terminated.

Source Error: 


Line 38:     mycommand.Parameters.Add("@contenttype", SqlDbType.VarChar).Value = inputFile.PostedFile.ContentType;
Line 39:     myconnection.Open();
Line 40:     mycommand.ExecuteNonQuery();
Line 41:     myconnection.Close();
Line 42:     Response.Redirect("success.html") ;
 



In pratica la mia domanda è :

come faccio ad auto-incrementare l'ID del record quanto ne inserisco uno tramite form?senza inserirlo manualmente .. io ho dato al campo ID il tipo INT .. devo specificare qualche altra opzione nel database?
o devo specificare cmq nel form una cosa del tipo :

 mycommand.Parameters.Add("@Doc_ID", SqlDbType.Int).????

Modificato da webmauro il 28 agosto 2007 10.56 -
41 messaggi dal 19 febbraio 2007
Ciao WebMauro.
Specifica la colonna ID come colonna di tipo IDENTITY. Il suo valore verrà così incrementato automaticamente.

Il codice sql per modificare la tabella è il seguente :

USE [NOME DATABASE]

ALTER TABLE [TUA_TABELLA] ALTER COLUMN [NOME COLONNA] IDENTITY (1, 1);
GO

I valori tra parentesi dopo IDENTITY indicano rispettivamente il valore di inizializzazione e di incremento per il campo.

(Naturalmente ho dato per scontato che la colonna Doc_Id sia chiave primaria della tabella).

Ciao!
Modificato da mike_nudget il 28 agosto 2007 13.40 -
99 messaggi dal 21 aprile 2007
mike_nudget ha scritto:
Ciao WebMauro.
Specifica la colonna ID come colonna di tipo IDENTITY. Il suo valore verrà così incrementato automaticamente.

Il codice sql per modificare la tabella è il seguente :

USE [NOME DATABASE]

ALTER TABLE [TUA_TABELLA] ALTER COLUMN [NOME COLONNA] IDENTITY (1, 1);
GO

I valori tra parentesi dopo IDENTITY indicano rispettivamente il valore di inizializzazione e di incremento per il campo.

(Naturalmente ho dato per scontato che la colonna Doc_Id sia chiave primaria della tabella).

Ciao!
Modificato da mike_nudget il 28 agosto 2007 13.40 -


Ciao Mike
grazie per la risposta!
io la tabella la modifico direttamente in TABLE DEFINITION nel progetto del vusual web!come faccio al posto di int metto IDENTITY ?o c'è una procedura particolare?
grazie

mauro
41 messaggi dal 19 febbraio 2007
Nella table definition, selezionando la colonna desiderata, dovresti avere la voce "Is Identity" il cui valore deve essere impostato a "Yes".

Ciao!
99 messaggi dal 21 aprile 2007
mike_nudget ha scritto:
Nella table definition, selezionando la colonna desiderata, dovresti avere la voce "Is Identity" il cui valore deve essere impostato a "Yes".

Ciao!


mmm..nn c'è!io uso sql express 2005 la seconda release .. strano
99 messaggi dal 21 aprile 2007
ah forse deve essere INT e poi sotto c'è un opzioni identity specification
scusa scusa grazie Mike..ero in modalità 2 bit!
Modificato da webmauro il 28 agosto 2007 14.46 -
Modificato da webmauro il 28 agosto 2007 14.47 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.