Recupero ID

martedì 03 giugno 2008 - 14.10

squilibrio Profilo | Expert

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







alx_81 Profilo | Guru

>Cosa sbaglio?? perchè non ottengo l'ID del record creato...
La stored procedure, a occhio sembra corretta (almeno la parte che ci hai postato). Non conosco Helper, quindi non so come si comporta, ma a grandi linee sembra corretto anche quella parte di codice che si vede. Hai provato a fare il debug con qualche watch? Cosa ottieni? 0?
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

squilibrio Profilo | Expert

Si, ottengo zero :(

alx_81 Profilo | Guru

>Si, ottengo zero :(
e hai anche fatto un bel debug approfondito?
perchè o l'execute non ti torna 1, altrimenti non vedo grossi errori..
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
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5