Info con recupero ID tramite scope_identity

giovedì 04 dicembre 2014 - 18.47
Tag Elenco Tags  VB.NET

zolamia Profilo | Newbie

Cia a tuttiii , Eccomi di nuovo con un altro problema.
In pratica devo recuperare l'ultimo ID_Riga registrato nella tabella (In realtà sarebbe molto meglio cercate di capire quello che verrà registrato) ma non riesco a capire come mai invece dell'ultimo mi da il primo. Potete aiutarmi? grazie mille
Vi posto il codice:

Dim ID_Riga As Integer = 0 Dim commandtext As String = "SELECT ID_Riga FROM MovimentiMagazzino_Dettagli;" & _ "SELECT Scope_Identity()" Dim connectionString As String = My.Settings.AFtDBConnectionString & "xxxxxxx" Using connection As New SqlConnection(connectionString) Dim command As New SqlCommand(commandtext, connection) connection.Open() ID_Riga = command.ExecuteScalar() MessageBox.Show("IL CODICE ID è " & ID_Riga) 'command.ExecuteNonQuery() Label17.Text = ID_Riga connection.Close() End Using

Ragazzi nesuno puo aiutarmi?
Grazie di nuovo
:::...Truly madly deeply...:::

FabAO Profilo | Newbie

Ciao!
se non ho capito male per quello che vuoi ottenere cioè l'ultimo id della tabella basta che nella che nella SELECT metti il critterio "ORDER BY DESC":
"SELECT ID_Riga FROM MovimentiMagazzino_Dettagli ORDER BY ID_Riga DESC;" oppure usi la funzione "MAX":
"SELECT MAX(ID_Riga) FROM MovimentiMagazzino_Dettagli; "

MaxMag Profilo | Newbie

Se devi recuperare una chiave primaria al momento dell'iserimento su un db access puoi usare il seguente metodo:

public int SaveReturnPkFatt(string sql, string cheDB, int nFatt, short Tipo)
{
int valRit=0;
try
{
this.apriConn();
this.Cmd.CommandText=sql; this.Cmd.ExecuteNonQuery();
//Recupero ed aggiorno l'ultimo numero di Riga delle righe fattura
this.Cmd.CommandText="SELECT @@IDENTITY FROM FRighe;";
SqlDataReader dr=this.Cmd.ExecuteReader();
if (dr.HasRows)
{
while(dr.Read()) valRit=dr.GetInt32(0);
}
dr.Close(); this.Mt.Commit();
}
catch(System.Exception e)
{
System.Windows.Forms.MessageBox.Show(e.Message); this.Mt.Rollback();
}
finally {this.aConn.Close();}
return valRit;
}
Se invece usi sql server meglio SCOPE_IDENTITY () facendo eseguire inserimento e recupero in una stored procedure.
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