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