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:
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
come posso effettuare questo processo?