Cosa sbaglio?? perchè non ottengo l'ID del record creato...


if (IDAzienda == 0) //Creazione di un nuovo elemento
{
IDAzienda = Helper.DataHelper.AddAnagrafica(sqlConnection,
IDTipologia,
IDRegioneSegnalatore,
Convert.ToInt32(IDSegnalatore),
Convert.ToInt32(IDOwner),
Convert.ToInt32(IDCanale),


dove il metodo è:

public Int32 AddAnagrafica(SqlConnection connection,
....)
{
ConnectionState currState = connection.State;
if (((connection.State & ConnectionState.Open) != ConnectionState.Open))
connection.Open();
try
{
SqlParameter[] parameters = new SqlParameter[7];
...
parameters[6] = new SqlParameter("@IDNew", SqlDbType.Int);
parameters[6].Direction = ParameterDirection.Output;
SqlCommand cmd = CreateStoreProcedureCommand("AddAnagrafica", connection, parameters);

if (cmd.ExecuteNonQuery() == 1)
{
return (Int32)cmd.Parameters["@IDNew"].Value;
}
else
{
return 0;
}

}
finally
{
if ((currState == ConnectionState.Closed))
connection.Close();
}


e la SP


ALTER PROCEDURE [dbo].[AddAnagrafica]
(
@IDTipologia varchar(1),
@IDSegnalatore int,
@IDOwner int,
@IDCanale int,
....
@IDNew int OUTPUT
)
AS

INSERT INTO Anagrafica (
....)
VALUES
(....
)


SET @IDNew = SCOPE_IDENTITY()

INSERT INTO AnagraficaDettaglio(
IDAnagrafica,
....)

VALUES
(@IDNew,
....)
RETURN