C#: begin transaction - commit

di il
3 risposte

C#: begin transaction - commit

Ciao a tutti,

devo aggiornare tre tabelle di un database Access (OleDb), con tre insert (o update, o delete)... vorrei fare in modo che se ci fosse qualche problema su una query, ad esempio sulla seconda, mi venissero annullate anche le altre con un meccanismo tipo begin transaction - commit/rollback... qualcuna sa dirmi come si fa?

grazie,
Alessandro

3 Risposte

  • Re: C#: begin transaction - commit

    Ciao Alessandro
    Questa volta non sei stato molto chiaro...ma a quanto ho capito del tuo problema,nel caso di Access devi usare la classe OleDbTransaction.
    Questa classe rappresenta una transazione SQL da effettuare in corrispondenza di un'origine dati. Poi chiami il metodo BeginTransaction esempio:
    ...
    myTrans = myConnection.BeginTransaction(IsolationLevel.ReadCommitted,"SampleTransaction");
    ...
    myCommand.Connection = myConnection;
    myCommand.Transaction = myTrans;
    ...
    myCommand.CommandText = "Insert into pippo (pippoID, pippoDescrizione) VALUES (100, 'Descrizione')";
    ....
    myTrans.Rollback("SampleTransaction");
    ...
    if (myTrans.Connection != null)

    etc...
    Spero di esserti stato d'aiuto
    ciao

    sergio
  • Re: C#: begin transaction - commit

    Ciao Sergio,
    ho preso spunto e sembra funzionare!

    ho fatto cosi:


    ...
    OleDbTransaction tran = conn.BeginTransaction();
    //dove conn è la connessione precedentemente dichiarata e aperta

    ...//dichiarazione query

    command1.Transaction = tran;
    command2.Transaction = tran;
    command3.Transaction = tran;

    try
    {
    ...//esecuzione query
    trans.Commit();
    }
    catch (Exception ex)
    {
    trans.Rollback();
    }
    ...

    grazie,
    Alessandro

  • Re: C#: begin transaction - commit

    Prego.
    Ciao


    sergio
Devi accedere o registrarti per scrivere nel forum
3 risposte