Recupero ID

giovedì 28 giugno 2007 - 06.04

amedeo Profilo | Newbie

Salve a tuttti,

Ho una tabella con un ID tipo contatore, che si incrementa dopo l'aggiunta di nuovi record.
In un web form dopo aver inserito un nuovo record, non riesco a recuperare l'ID del record. Le istruzioni che utilizzo per inserire il record sono:
Dim cmdInsert As SqlCommand
cmdInsert = New SqlCommand("INSERT ANAGRAFICACLIENTI (Ragione, Legale, Nominativo) VALUES (@Ragione, @Legale, @Nominativo)", conStr)
cmdInsert.Parameters.AddWithValue("@Ragione", txt_ragione.Text)
cmdInsert.Parameters.AddWithValue("@Legale", txt_legale.Text)
cmdInsert.Parameters.AddWithValue("@Nominativo", txt_nominativo.Text)
cmdInsert.ExecuteNonQuery()

Come posso fare?

Saluti Amedeo

alx_81 Profilo | Guru

>Salve a tuttti,
Ciao!
>
>Ho una tabella con un ID tipo contatore, che si incrementa dopo
>l'aggiunta di nuovi record.
>In un web form dopo aver inserito un nuovo record, non riesco
>a recuperare l'ID del record. Le istruzioni che utilizzo per
>inserire il record sono:
> Dim cmdInsert As SqlCommand
>cmdInsert = New SqlCommand("INSERT ANAGRAFICACLIENTI (Ragione,
>Legale, Nominativo) VALUES (@Ragione, @Legale, @Nominativo)",
>conStr)
>cmdInsert.Parameters.AddWithValue("@Ragione", txt_ragione.Text)
>cmdInsert.Parameters.AddWithValue("@Legale", txt_legale.Text)
>cmdInsert.Parameters.AddWithValue("@Nominativo", txt_nominativo.Text)
> cmdInsert.ExecuteNonQuery()
>
>Come posso fare?
Immagino che utilizzi SQL Server, giusto?
Comunque.. utilizza una stored procedure, fatta come questa:
CREATE PROCEDURE proc_InsertAnagraficaClienti @Ragione varchar(100), @Legale varchar(100), @Nominativo varchar(50), @IDCliente int = NULL output AS BEGIN SET NOCOUNT ON; INSERT ANAGRAFICACLIENTI (Ragione,Legale, Nominativo) VALUES (@Ragione, @Legale, @Nominativo) SET @IDCliente = SCOPE_IDENTITY() END

Nell vb poi fai

Dim cmdInsert As SqlCommand Dim IDCliente As Integer cmdInsert = New SqlCommand("proc_InsertAnagraficaClienti",conStr) cmdInsert.CommandType = CommandType.StoredProcedure cmdInsert.Parameters.AddWithValue("@Ragione", txt_ragione.Text) cmdInsert.Parameters.AddWithValue("@Legale", txt_legale.Text) cmdInsert.Parameters.AddWithValue("@Nominativo", txt_nominativo.Text) cmdInsert.Parameters.Add("@IDCliente", SqlDbType.Int) cmdInsert.Parameters("@IDCliente").Direction = ParameterDirection.InputOutput cmdInsert.ExecuteNonQuery() ' ritorni IDCliente preso dal parametro di output IDCliente = cmdInsert.Parameters("@IDCliente").Value

prova così
ciao!

Alx81 =)

http://blogs.dotnethell.it/suxstellino

amedeo Profilo | Newbie

Grazie per la risposta. Non ho capito però dove inserire la stored procedure.

Saluti Amedeo

alx_81 Profilo | Guru

nella seconda parte del post precedente..
nella new SQLCommand..
impostando il commandtype a Stored procedure..
(avevo lasciato la tua parte, ora ho corretto)
Alx81 =)

http://blogs.dotnethell.it/suxstellino

amedeo Profilo | Newbie

Tutto perfetto, grazie

Saluti Amedeo

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5