>Salve.
Ciao!
>Il mio problema nasce quando ho di bosngno che al click del
>pulsante che mi esegue l'inserimento dei dati nel database, mi
>deve automaticamente comunicare l'ID che è stato assegnato al
>record appena inserito.
>Come è possibile farlo?
Se stai parlando di sql server, basta fare una stored procedure che valorizzi un parametro di OUTPUT con l'id appena inserito. Prendi questo esempio:
USE tempdb;
GO
CREATE TABLE dbo.ElencoID
(
ID int IDENTITY(1,1) NOT NULL
, Valore varchar(3) NOT NULL
, CONSTRAINT PK_ElencoID PRIMARY KEY CLUSTERED
(
ID
)
)
GO
INSERT INTO dbo.ElencoID (Valore)
VALUES ('AAA')
INSERT INTO dbo.ElencoID (Valore)
VALUES ('BBB')
INSERT INTO dbo.ElencoID (Valore)
VALUES ('CCC')
INSERT INTO dbo.ElencoID (Valore)
VALUES ('DDD')
INSERT INTO dbo.ElencoID (Valore)
VALUES ('EEE')
GO
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id('dbo.proc_InserisciETornaID'))
DROP PROCEDURE dbo.proc_InserisciETornaID
GO
CREATE PROCEDURE dbo.proc_InserisciETornaID
@Valore varchar(3)
, @ID int = NULL OUTPUT
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO dbo.ElencoID (Valore)
VALUES (@Valore)
SET @ID = SCOPE_IDENTITY()
END
GO
-- chiamata alla stored procedure
DECLARE @IDOut int
EXEC dbo.proc_InserisciETornaID 'YYY', @IDOut OUTPUT
-- id inserito
SELECT @IDOut as IDInserito
GO
-- chiamata alla stored procedure
DECLARE @IDOut int
EXEC dbo.proc_InserisciETornaID 'ZZZ', @IDOut OUTPUT
-- id inserito
SELECT @IDOut as IDInserito
GO
-- Pulizia
--DROP TABLE ElencoID
--GO
Con una stored procedure così fatta, puoi usare il namespace System.Data.SQLClient in questo modo per ottenere l'id appena inserito:
C#
-------------------------------------
>Mille grazie
di nulla!
--
Alessandro Alpi | SQL Server MVP
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org