>ciao ragazzi.
Ciao, scusate se intervengo, ma abbiamo già parlato di questo problema con _J_
>ho una tabella 'cittadino' che ha una primary key 'cod_persona'
>(di tipo int ma non identity), una tabella 'nucleo_familiare_e_convivenze'
>che ha pk 'cod_nucleo_familiare' (di tipo int e di tipo identity)
>e una tabella'ruolo_in_nf_o_conviv' che le collega entrambe mediante
>opportune foreignkey e che quindi genera la relazione molti a
>molti.
>in precedenza ho creato una stored che mi crea un nuovo record
>per 'cittadino', adesso quello che voglio fare è creare una nuova
>famiglia aggiungendo 'a catena' dei record nelle tabelle 'nucleo_familiare'
>e 'ruolo_in_nf' (voglio gestire la situazione di gente che vive
>sola ma che a tutti gli effetti costituisce famiglia, formata
>da un solo elemento) in base al nuovo codice persona inserito.
>come posso ottenere il parametro @ultimo_indice per poi poterlo
>immettere nella tabella delle relazioni così da ottenere quello
>che voglio?
Innanzitutto, il problema dell'errore "formato della stringa di input non corretto" è riferito alla gestione dei parametri lato C#. Come nell'altro post in cui abbiamo discusso proprio su questo tipo di messaggio, l'errore è probabilmente dovuto al mancato controllo dei valori null o alla chiamata di una funzione (come potrebbe essere la HtmlEncode) con parametri non corretti. Basta passare un valore non stringa (o non riconducibile a stringa) ad una funzione che accetta solo quel tipo di parametro per ottenere sempre quell'errore.
Inoltre, noterai che sotto il messaggio ti viene indicata proprio la riga in cui si verifica l'eccezione. DEBUG!
In secondo luogo, a prescindere dalle strutture (che conosco già dai precedenti post ), dichiari un parametro in più rispetto a quelli che si aspetta la stored procedure. Come mai crei il parametro @cod_nf se poi nella sp nemmeno lo dichiari? Se nella tabella il CAMPO è identity, non significa che lo devi dichiarare ma non passare. Non lo devi passare e basta . Quindi eliminalo dal tuo C#.
Idem per @ultimo_ind, non ti serve fra i parametri. Eliminalo dalla sp (a meno che non ti serva come parametro di output).
Puoi comunque creare una variabile che contenga lo SCOPE_IDENTITY() nella stored con la seguente sintassi:
DECLARE @ultimo_ind int
-- ....
-- e poi fai la select o la set
SET @ultimo_ind = SCOPE_IDENTITY()
Però, torno a ripetere, per l'errore, leggiti i post su cui abbiamo già ampiamente discusso. Fatti un debug e controlla dove gli errori bloccano l'esecuzione, ok?
ciao!
Alx81 =)
http://blogs.dotnethell.it/suxstellino