ciao!
ho fatto la modifica alla SP:
codice:
ALTER PROCEDURE [dbo].[usp_InsertRichiesta]
@RicReferente INT
,@RicIntervento INT
,@RicCondominio INT
,@RicDataInizio DATETIME = NULL
,@RicDataUltimo DATETIME = NULL
,@RecordID AS INT = 0 OUTPUT
,@IDLast float = 0 OUTPUT
,@ERROR_NUMBER AS INT = 0 OUTPUT
,@ERROR_SEVERITY AS INT = 0 OUTPUT
,@ERROR_STATE AS INT = 0 OUTPUT
,@ERROR_PROCEDURE AS NVARCHAR(126) = '' OUTPUT
,@ERROR_LINE AS INT = 0 OUTPUT
,@ERROR_MESSAGE AS NVARCHAR(4000) = '' OUTPUT
,@NUMROWSAFFECTED AS INT = NULL OUTPUT
AS
BEGIN
IF @RicDataInizio IS NULL
BEGIN
SET @RicDataInizio = GETDATE();
SET @RicDataUltimo = GETDATE();
END;
SET NOCOUNT ON;
BEGIN TRY
INSERT INTO [dbo].[Richieste] (
[RicReferente]
,[RicIntervento]
,[RicCondominio]
,[RicDataInizio]
,[RicDataUltimo]
)
VALUES (
@RicReferente
,@RicIntervento
,@RicCondominio
,@RicDataInizio
,@RicDataUltimo
);
--SELECT @RecordID = @@IDENTITY
SELECT @IDLast = SCOPE_IDENTITY()
END TRY
BEGIN CATCH
PRINT 'CATCH:' + ERROR_MESSAGE()
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
SELECT @ERROR_NUMBER = ERROR_NUMBER()
,@ERROR_SEVERITY = ERROR_SEVERITY()
,@ERROR_STATE = ERROR_STATE()
,@ERROR_PROCEDURE = ERROR_PROCEDURE()
,@ERROR_LINE = ERROR_LINE()
,@ERROR_MESSAGE = ERROR_MESSAGE()
END CATCH;
END
però non ho capito cmq il codice VB come dovrei modificarlo.
ho fatto vari tentativi rilegendomi anche la pagina che mi hai mandato.
mi sembra che ExecuteNonQuery dovrebbe andare, ma vedo sempre 0:
codice:
Protected Sub btnInviaRichiesta_Click(sender As Object, e As EventArgs) Handles btnInviaRichiesta.Click
oConn.Open()
Dim cmd As SqlCommand = New SqlCommand("[usp_InsertRichiesta]", oConn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Clear()
cmd.Parameters.AddWithValue("@RicReferente", uid)
cmd.Parameters.AddWithValue("@RicIntervento", drpDestin.SelectedValue)
cmd.Parameters.AddWithValue("@RicCondominio", drpCond.SelectedValue)
cmd.Parameters.Add("@IDLast", SqlDbType.Int).Direction = ParameterDirection.ReturnValue
cmd.ExecuteNonQuery()
'Diagnostics.Debug.WriteLine(cmd.Parameters("@IDLast").Value)
btnInviaRichiesta.Text = cmd.Parameters("@IDLast").Value
oConn.Close()
End Sub