예제 #1
0
        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
        }
예제 #2
0
        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);
                    }
                }
            }
        }