2016-03-26 36 views
1

blok} {kullanma içeride İşlem kullanmak i yukarıdaki structure.How içinde İşlem dahil etmek istiyorum ŞimdiNasıl Şu anda

try 
{ 
    using(FBConnection con = new FBConnection('connectionstringhere')) 
    { 
    con.Open(); 
    using(FBCommand cmd = FBCommand("qryString",con)) 
    { 
     cmd.Parameters.Add("paramSql", FbDbType.Date).Value ="somevalue"; 
     cmd.CommandType = CommandType.Text; 
     using(FBDatareader rdr = cmd.ExecuteReader()) 
     { 
     while(rdr.Read()) 
     { 
      //some code here 
     } 
     } 
    } 
    } 
} 
catch(FBException ex) 
{ 
    MessageBox.Show(ex.Message); 
} 

do ben doğru yapmak Bloğu kullanma yolu. Lütfen uygun kod snippet'ini açıklayın.

cevap

1

sadece kayıtları (ExecuteReader) okuduğunuz takdirde bir İşlem gerekmez ancak bu TransactionScope class

try 
{ 
    using(TransactionScope scope = new TransactionScope()) 
    using(FBConnection con = new FBConnection('connectionstringhere')) 
    { 
    con.Open(); 
    ... 
    scope.Complete(); 
    } 
} 
catch(FBException ex) 
{ 
    // No rollback needed in case of exceptions. 
    // Exiting from the using statement without Scope.Complete 
    // will cause the rollback 
    MessageBox.Show(ex.Message); 
} 

standart yaklaşımı kullanarak bir yaklaşım olabilir

FBTransaction transaction = null; 
FBConnection con = null; 
try 
{ 
    con = new FBConnection('connectionstringhere'); 
    con.Open(); 
    transaction = con.BeginTransaction(); 
    ... 
    transaction.Commit(); 
} 
catch(FBException ex) 
{ 
    MessageBox.Show(ex.Message); 
    if(transaction!=null) transaction.Rollback(); 
} 
finally 
{ 
    if(transaction != null) transaction.Dispose(); 
    if(con != null) con.Dispose(); 
} 

olarak yazılmış olabilir Davranışlar veya FBConnection nesnesi ile ilgili emin olamadığınızdan emin olun, geleneksel bir sonuncu bloğa giderken, işlemin ve bağlantının doğru düzende

+0

Aslında benim örneğim bazı Geçişler while veya If bloğu içinde başka bir tabloya yapıyorum. Bu nedenle, işlem veya taşıma için işlemi kullanmam gerekir. Bu nedenle, bloğun kullanımıyla ilgili işlemin uygun bir örneğini soruyorum – msm

+0

Teşekkürler @Steve senin cevabın :) – msm

İlgili konular