ho necessità di effettuare una commit, ma non l'ho mai usata è mi trovo in difficoltà, io devo inserire dei dati in due tabelle differenti, inizialmente devo inserire un record in una tabella e poi nella seconda tabella devo inserire una serie di record dove però un campo deve essere l'id contatore del record inserito nella prima tabella, se io uso una commit e i dati vengono inseriti non subito nel db ma in uno spazio di memoria, come posso recuperare il campo ID della prima tabella per passarla alla query di insrimento ndei dati nella seconda tabella?
faccio un esempio del codice che vorrei usare:
come posso effettuare questo processo?codice:Dim con As New Connessione Dim conn As OleDbConnection = con.Connect Dim comm As New OleDbCommand conn.Open() 'Dim transazione As OleDbTransaction = conn.BeginTransaction Try With comm .CommandText = "INSERT INTO tabella1(ID,campo1,campo2,campo3) VALUES (@ID,@C1,@C2,@C3)" .Connection = conn 'qui aggiungo i parametri End With If comm.ExecuteNonQuery() > 0 Then transazione.Rollback() End If dim comm2 as new OleDbCommand 'qui eseguo un ciclo for per inserire i dati nella tabella2 'qui il campo ID deve essere quella generato automaticamente nella tabella1 in quanto questi secondi inserimenti dipenderanno dalla prima tabella1 ... INSERT INTO tabella2(ID,campo1,campo2,campo3) VALUES (@ID,@C1,@C2,@C3)" ... transazione.Commit() Catch ex As Exception transazione.Rollback() MessageBox.Show(ex.ToString) Return False Finally conn.Close() comm.Dispose() End Try

Rispondi quotando