>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