コード例 #1
0
        public BindingList<Venda> RecuperarTodos()
        {
            using (var conn = CriarConexao())
            {
                conn.Open();

                var sql = "SELECT * FROM Venda WHERE Situacao = 1;";
                var cmd = conn.CreateCommand();
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = sql;

                var leitor = cmd.ExecuteReader();
                var colecao = new BindingList<Venda>();
                while (leitor.Read())
                {
                    var novaVenda = new Venda();
                    novaVenda.ID = leitor.GetInt32(0);
                    novaVenda.Data = leitor.GetDateTime(1);
                    novaVenda.Valor = leitor.GetSqlMoney(2);
                    novaVenda.Situacao = leitor.GetByte(3);

                    colecao.Add(novaVenda);
                }

                return colecao;
            }
        }
コード例 #2
0
        public void ConfirmarVenda(Venda venda)
        {
            using (var conn = CriarConexao())
            {
                conn.Open();
                var transacao = conn.BeginTransaction();

                var cmd1 = conn.CreateCommand();
                cmd1.Transaction = transacao;
                cmd1.CommandText = @"
                    UPDATE Venda
                        SET Situacao = 2
                        WHERE ID = @id";
                var pVendaID = new SqlParameter("@id", SqlDbType.Int);
                pVendaID.Value = venda.ID;

                cmd1.Parameters.Add(pVendaID);

                cmd1.ExecuteNonQuery();

                var cmd2 = conn.CreateCommand();
                cmd2.Transaction = transacao;
                cmd2.CommandText = @"
                    UPDATE Caixa
                        SET Saldo = Saldo + @valor
                        WHERE DataAbertura IS NOT NULL
                            AND DataFechamento IS NULL;";
                var pVendaValor = new SqlParameter("@valor", SqlDbType.Money);
                pVendaValor.Value = venda.Valor;

                cmd2.Parameters.Add(pVendaValor);

                var linhasAfetadas = cmd2.ExecuteNonQuery();

                if (linhasAfetadas == 1)
                    transacao.Commit();
                else
                    transacao.Rollback(); 
            }
        }