[C#] Ottenere ID Di Una Insert

venerdì 28 dicembre 2007 - 18.15

Domin Profilo | Newbie

Ciao

Dopo aver fatto una insert vorrei recuperare l'ID per farlo ho una transazione ma non so con quale livello avvirla, qualcuno sa darmi qualche consiglio e sa dirmi se questo codice è giusto, oppure può creare problemi?
SqlTransaction trans; trans = conn.BeginTransaction(QUALE LIVELLO METTO?); string query = "SELECT TOP 1 id FROM tabellaORDER BY id DESC; oleCmd = new OleDbCommand(query, conn); oleCmd.Transaction = trans; long art = System.Convert.ToInt64(oleCmd.ExecuteScalar()); query = "INSERT INTO tabella (id) VALUES (" + art + "); oleCmd = new OleDbCommand(query, conn); oleCmd.Transaction = trans; oleCmd.ExcuteNonQuery(); Query = "....."... .... ... ..

Cteniza Profilo | Guru

Se vuoi recuperare l'ultimo id inserito (campo contatore/identity) devi:
lanciare il tuo normale programma di insert tralasciando il campo id
Mettiamo una tabella con id (identity) e descrizione (varchar)
"INSERT INTO myTable (descrizione) VALUES('Descrizione')"
poi il normale
myCommand.ExecuteNonQuery()
e subito dopo, prima di chiudere la connessione
myCommand = new [sql/oledb]Command
per sqlserver
myCommand.CommandText = "SELECT SCOPE_IDENTITY()"
per access
myCommand.CommandText = "SELECT @@IDENTITY"
int myId = (int) myCommand.ExecuteScalar();
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5