Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - transaction su DB con visual basic vb.net
Forum - C# / VB.NET - transaction su DB con visual basic vb.net

Avatar
visualrenzo (Normal User)
Pro


Messaggi: 94
Iscritto: 15/05/2009

Segnala al moderatore
Postato alle 22:34
Sabato, 09/03/2019
Questo topic è stato chiuso dal moderatore

ho scritto il seguente codice che dovrebbe andare ascrivere su una tabella del server(in questo momento in locale su un DB access)

Sto provando la Transaction con Commit e Rollback.

Ho scritto questo e sembra che funziona almeno il Commit.

Domanda: Ma il rollback serve a riprovare l' insert oppure ad annullarlo?

In realtà io voglio sapere se l' operazione è andata a buon fine oppure se c' è da rilanciare l'insert perchè il server magari ha avuto problemi o per casi di Timeout.

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  2.         Dim pippo
  3.         pippo = TextBox1.Text.ToString
  4.  
  5.         Dim transaction As OleDbTransaction
  6.         ' Start a local transaction
  7.         'transaction = MyConnessione.BeginTransaction("SampleTransaction")
  8.         transaction = MyConnessione.BeginTransaction()
  9.         Try
  10.  
  11.             strSQL = "INSERT INTO " & "tbl" &
  12.                                     "([Numero],[Descrizione]) " &
  13.                                     "VALUES (?,?)"
  14.  
  15.  
  16.             Dim cmdCommand As OleDbCommand = New OleDbCommand(strSQL, MyConnessione)
  17.  
  18.             ' Must assign both transaction object and connection
  19.             ' to Command object for a pending local transaction.
  20.  
  21.             cmdCommand.Transaction = transaction
  22.  
  23.             cmdCommand.Parameters.Add(New OleDbParameter("@AAA", OleDbType.VarChar)).Value = "0" 'Trim(Carrello_Numero_Letto) '21 gennaio 2019
  24.             cmdCommand.Parameters.Add(New OleDbParameter("@BBB", OleDbType.VarChar)).Value = Trim(pippo)   '21 gennaio 2019
  25.  
  26.             cmdCommand.ExecuteNonQuery()
  27.             transaction.Commit()
  28.  
  29.  
  30.  
  31.         Catch ex As Exception
  32.             transaction.Rollback()
  33.  
  34.             FileClose(1)
  35.             FileOpen(1, "LOG Errori" & ".txt", OpenMode.Append, , , )    'Open "ParametriTest.ini" For Input As 1
  36.             PrintLine(1, ex.Message & " Non riesco a connettermi alla Tabella  ")
  37.             FileClose(1)
  38.             FileClose(1)
  39.             FileOpen(1, "Trace" & ".txt", OpenMode.Append, , , )    'Open "ParametriTest.ini" For Input As 1
  40.             PrintLine(1, strSQL)
  41.             FileClose(1)
  42.  
  43.  
  44.         End Try
  45.  
  46.     End Sub



PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 13:36
Domenica, 10/03/2019


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 21:11
Domenica, 10/03/2019
Questo topic è in violazione di una o più norme del regolamento: http://www.pierotofy.it/pages/extras/forum/9/3839-regolame ... .
    
Dopo averlo letto riapri un nuovo topic assicurandoti di aver rispettato le regole. Grazie per la tua pazienza.


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM