Questo è un problema SQL e non C#.
In SQL io uso sempre una Stored del tipo
codice:
CREATE PROCEDURE INSERISCI
(
@ID_RITORNO int
)
AS
INSERT INTO Tabella (Campo1) VALUES('stringa');
SET @ID_RITORNO = (SELECT @@IDENTITY);
RETURN @ID_RITORNO
è chiaro che mancano i parametri di input. A quel punto usi un OleDbCommand o SqlCommand e inserisci i parametri e la query la chiami con il suo nome.