1

Ich habe eine WinForm-Anwendung, die SqlCe-Datenbank mithilfe typisierter Dataset-Tabellendateien abfragt. Ich habe eine Hauptformularversammlung und eine Datenbankversammlung, die jede DB-Operation behandelt. Ich habe Probleme mit der Aktualisierung mit tableadapter in einer Transaktion und ich würde mich freuen, wenn mir jemand irgendwelche Ideen geben könnte, warum.Verwenden von TransactionScope mit typisiertem Dataset

Update() Methode gibt diesen Fehler:

"The connection object can not be enlisted in transaction scope." 

Hier ist mein Code:

namespace Main 
{ 
    public class MainForm 
    { 
     private MyDbAssembly.MyDbClass db; 

     //instantiate and db fill methods omitted.. 

     private void DeleteStuff() 
     { 
      using (TransactionScope trans = new TransactionScope()) 
      { 
       this.db.Delete(id); 
       UpdateDb(); 

       trans.Complete(); 
      } 
     } 

     private void UpdateDb() 
     { 
      //bindingsource endedit & datagridview endedit methods omitted.. 
      this.db.Update(); 
     } 
    } 
} 

namespace MyDbAssembly 
{ 
    public class MyDbClass 
    { 
     private myTypedDataset myDataSet; 
     private myTypedDataSetTableAdapter.MyTable1Adapter table1Adapter; 

     //instantiate methods omitted.. 

     public void Delete(Guid id) 
     { 
      this.myDataSet.MyTable1.FindByID(id).Delete(); 
     } 

     public void Update() 
     { 
      this.table1Adapter.Update(myDataSet.MyTable); //<-- ERROR LINE 
     } 
    } 
} 
+0

Hast du das nicht schon gefragt? http://StackOverflow.com/Questions/602421 –

+1

Nein, es ist nicht das Gleiche. Diese Frage war, ob es funktionieren würde, dieser hier handelt von dem Fehler, den ich bekomme. – dstr

Antwort

1

Da Sie die table1Adapter außerhalb des Transaction trans Bereich erstellt.

Verwandte Themen