public void Overschrijven(decimal bedrag, string vanRekening, string naarRekening) { var dbManager = new BankDbManager(); var dbManager2 = new Bank2DbManager(); var opties = new TransactionOptions(); opties.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; using (var traOverschrijven = new TransactionScope(TransactionScopeOption.Required, opties)) { using (var conBank = dbManager.GetConnection()) { using (var comAftrekken = conBank.CreateCommand()) { comAftrekken.CommandType = CommandType.Text; comAftrekken.CommandText = "update Rekeningen set Saldo = Saldo - @bedrag where RekeningNr = @reknr"; var parBedrag = comAftrekken.CreateParameter(); parBedrag.ParameterName = "@bedrag"; parBedrag.Value = bedrag; comAftrekken.Parameters.Add(parBedrag); var parRekNr = comAftrekken.CreateParameter(); parRekNr.ParameterName = "@reknr"; parRekNr.Value = vanRekening; comAftrekken.Parameters.Add(parRekNr); conBank.Open(); if (comAftrekken.ExecuteNonQuery() == 0) { throw new Exception("Van rekening bestaat niet"); } } // using comAftrekken } // using conBank using (var conBank = dbManager2.GetConnection()) { using (var comBijtellen = conBank.CreateCommand()) { comBijtellen.CommandType = CommandType.Text; comBijtellen.CommandText = "update Rekeningen set Saldo = Saldo + @bedrag where RekeningNr = @reknr"; var parBedrag = comBijtellen.CreateParameter(); parBedrag.ParameterName = "@bedrag"; parBedrag.Value = bedrag; comBijtellen.Parameters.Add(parBedrag); var parRekNr = comBijtellen.CreateParameter(); parRekNr.ParameterName = "@reknr"; parRekNr.Value = naarRekening; comBijtellen.Parameters.Add(parRekNr); conBank.Open(); if (comBijtellen.ExecuteNonQuery() == 0) { throw new Exception("Naar rekening bestaat niet"); } traOverschrijven.Complete(); } // using comBijtellen } // using conBank } // using traOverschrijven }
public Boolean Overschrijven(decimal bedrag, string vanRekening, string naarRekening) { var BankDb = new BankDbManager(); var Bank2Db = new Bank2DbManager(); var opties = new TransactionOptions(); opties.IsolationLevel = IsolationLevel.ReadCommitted; using (var traOverschrijven = new TransactionScope(TransactionScopeOption.Required, opties)) { using (var BankDbConnection = BankDb.GetConnection()) { using (var BankDbAftrekkenCommand = BankDbConnection.CreateCommand()) { BankDbAftrekkenCommand.CommandType = System.Data.CommandType.Text; BankDbAftrekkenCommand.CommandText = "update Rekeningen set Saldo=Saldo - @Bedrag where RekeningNr=@vanRekeningNr"; DbParameter ParAftrekkenBedrag = BankDbAftrekkenCommand.CreateParameter(); ParAftrekkenBedrag.ParameterName = "@Bedrag"; ParAftrekkenBedrag.Value = bedrag; ParAftrekkenBedrag.DbType = System.Data.DbType.Decimal; BankDbAftrekkenCommand.Parameters.Add(ParAftrekkenBedrag); DbParameter ParAftrekkenvanRekeningNr = BankDbAftrekkenCommand.CreateParameter(); ParAftrekkenvanRekeningNr.ParameterName = "@vanRekeningNr"; ParAftrekkenvanRekeningNr.Value = vanRekening; ParAftrekkenvanRekeningNr.DbType = System.Data.DbType.String; BankDbAftrekkenCommand.Parameters.Add(ParAftrekkenvanRekeningNr); BankDbConnection.Open(); if (BankDbAftrekkenCommand.ExecuteNonQuery() == 0) { throw new Exception("Iets misgegaan bij het van de rekening afhalen van het geld."); } } } using (var Bank2DbConnection = Bank2Db.GetConnection()) { using (var Bank2DbStortenCommand = Bank2DbConnection.CreateCommand()) { Bank2DbStortenCommand.CommandType = System.Data.CommandType.Text; Bank2DbStortenCommand.CommandText = "update Rekeningen set Saldo=Saldo+@Bedrag where RekeningNr=@naarRekeningNr"; DbParameter ParStortenBedrag = Bank2DbStortenCommand.CreateParameter(); ParStortenBedrag.ParameterName = "@Bedrag"; ParStortenBedrag.Value = bedrag; ParStortenBedrag.DbType = System.Data.DbType.Decimal; Bank2DbStortenCommand.Parameters.Add(ParStortenBedrag); DbParameter ParStortennaarRekeningNr = Bank2DbStortenCommand.CreateParameter(); ParStortennaarRekeningNr.ParameterName = "@naarRekeningNr"; ParStortennaarRekeningNr.Value = naarRekening; ParStortennaarRekeningNr.DbType = System.Data.DbType.String; Bank2DbStortenCommand.Parameters.Add(ParStortennaarRekeningNr); Bank2DbConnection.Open(); if (Bank2DbStortenCommand.ExecuteNonQuery() == 0) { throw new Exception("Iets misgegaan bij het naar de rekening overschrijven van het geld."); } traOverschrijven.Complete(); return(true); } } } }