Dev (Back & Front)ARTIGO

Cadastro Bancário: incluindo, editando e excluindo dados

Abaixo temos a tela principal da nossa aplicação – Cadastro Bancário. É um exemplo bem simples que tem por objetivo mostrar como acessar um banco de dados Access e realizar as operações de consulta, inclusão, edição e exclusão usando código C-Sharp.

Eu editei o projeto usando o editor SharpDevelop. Para saber mais sobre o SharpDevelop, veja os links abaixo:

O código completo da aplicação, incluindo o código gerado pelo Windows, está exibido abaixo:

using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

using System.Data;

using System.Data.OleDb;


namespace Macoratti

{

	/// <summary>

	/// descricao do formulario

	/// </summary>

	/// 


	public class Form1 : System.Windows.Forms.Form

	{

		private System.Windows.Forms.Label lblSaldo;

		private System.Windows.Forms.Label lblnumeroConta;

		private System.Windows.Forms.ComboBox cbxnumeroConta;

		private System.Windows.Forms.Button btnDeleta;

		private System.Windows.Forms.Button btnNovo;

		private System.Windows.Forms.Button btnAnterior;

		private System.Windows.Forms.Button btnPrimeiro;

		private System.Windows.Forms.Button btnAtualiza;

		private System.Windows.Forms.Button btnUltimo;

		private System.Windows.Forms.Button btnProximo;

		private System.Windows.Forms.TextBox tbxName;

		private System.Windows.Forms.Label lblName;

		private System.Windows.Forms.Button btnCancela;

		private System.Windows.Forms.TextBox tbxSaldo;

		private System.Windows.Forms.Label lblDisplay;

		private System.Windows.Forms.Button btnEdita;

	

		private System.ComponentModel.Container components = null;


		private System.Data.OleDb.OleDbConnection oleDbConnection1;

		private System.Data.OleDb.OleDbDataAdapter oleDbDataAdapter1;

		private System.Data.OleDb.OleDbCommandBuilder oleDbCommandBuilder1;

		private DataSet Ds_banco;

		private string sqlStr;

		private int linhaAtual;

		private string opModo	;


		private string numeroConta;


		public Form1()

		{

			//

			// Required for Windows Form Designer support

			//

			InitializeComponent();


			// Vincula os eventos aos botoes

			btnPrimeiro.Click += new EventHandler(btnPrimeiro_Click);

			btnAnterior.Click += new EventHandler(btnAnterior_Click);

			btnProximo.Click += new EventHandler(btnProximo_Click);

			btnUltimo.Click += new EventHandler(btnUltimo_Click);

			btnNovo.Click += new EventHandler(btnNovo_Click);

			btnEdita.Click += new EventHandler(btnEdita_Click);

			btnDeleta.Click += new EventHandler(btnDeleta_Click);

			btnAtualiza.Click += new EventHandler(btnAtualiza_Click);

			btnCancela.Click += new EventHandler(btnCancela_Click);


			// Vincula o evento para a conta corrente ao combobox

			cbxnumeroConta.SelectedIndexChanged += new EventHandler(cbxnumeroConta_Changed);


			// carrega os dados

			carregaDados();

	

		}


		private void carregaDados()

		{

                                      //efetua conexao com o banco de dados banco.mdb  

			string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\capp+\\Bancos.mdb";

			try

                                       {

			     oleDbConnection1 = new OleDbConnection(connStr);

			     oleDbConnection1.Open();

			     Ds_banco = new DataSet();

			}

			catch (Exception e)

			{

			     MessageBox.Show("Erro ao acessar a base de dados : " + e.ToString());

			     this.Dispose();

			}

			sqlStr = "SELECT numeroConta,nomeCliente,saldoConta "

				+ "FROM banco ORDER BY numeroConta";

			

			oleDbDataAdapter1 = new OleDbDataAdapter(sqlStr, oleDbConnection1);

			oleDbDataAdapter1.SelectCommand.CommandText = sqlStr;

			oleDbCommandBuilder1 = new OleDbCommandBuilder(oleDbDataAdapter1);

			oleDbDataAdapter1.Fill(Ds_banco,"contasBancarias");

			linhaAtual = 0;

		}

		

		/// <summary>

		/// Limpa todos os recursos usados

		/// </summary>

		protected override void Dispose( bool disposing )

		{

			if( disposing )

			{

				if (components != null) 

				{

					components.Dispose();

				}

			}

			base.Dispose( disposing );

		}


		#region Windows Form Designer generated code

		/// <summary>

		/// Não altere o conteudo deste codigo com o editor

		/// </summary>

		private void InitializeComponent() {

			this.btnEdita = new System.Windows.Forms.Button();

			this.lblDisplay = new System.Windows.Forms.Label();

			this.tbxSaldo = new System.Windows.Forms.TextBox();

			this.btnCancela = new System.Windows.Forms.Button();

			this.lblName = new System.Windows.Forms.Label();

			this.tbxName = new System.Windows.Forms.TextBox();

			this.btnProximo = new System.Windows.Forms.Button();

			this.btnUltimo = new System.Windows.Forms.Button();

			this.btnAtualiza = new System.Windows.Forms.Button();

			this.btnPrimeiro = new System.Windows.Forms.Button();

			this.btnAnterior = new System.Windows.Forms.Button();

			this.btnNovo = new System.Windows.Forms.Button();

			this.btnDeleta = new System.Windows.Forms.Button();

			this.cbxnumeroConta = new System.Windows.Forms.ComboBox();

			this.lblnumeroConta = new System.Windows.Forms.Label();

			this.lblSaldo = new System.Windows.Forms.Label();

			this.SuspendLayout();

			// 

			// btnEdita

			// 

			this.btnEdita.Location = new System.Drawing.Point(120, 16);

			this.btnEdita.Name = "btnEdita";

			this.btnEdita.TabIndex = 11;

			this.btnEdita.Text = "Edita";

			// 

			// lblDisplay

			// 

			this.lblDisplay.Location = new System.Drawing.Point(136, 248);

			this.lblDisplay.Name = "lblDisplay";

			this.lblDisplay.Size = new System.Drawing.Size(232, 23);

			this.lblDisplay.TabIndex = 15;

			this.lblDisplay.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;

			// 

			// tbxSaldo

			// 

			this.tbxSaldo.Location = new System.Drawing.Point(272, 112);

			this.tbxSaldo.Name = "tbxSaldo";

			this.tbxSaldo.TabIndex = 2;

			this.tbxSaldo.Text = "";

			// 

			// btnCancela

			// 

			this.btnCancela.Location = new System.Drawing.Point(384, 16);

			this.btnCancela.Name = "btnCancela";

			this.btnCancela.TabIndex = 14;

			this.btnCancela.Text = "Cancela";

			// 

			// lblName

			// 

			this.lblName.Location = new System.Drawing.Point(200, 72);

			this.lblName.Name = "lblName";

			this.lblName.Size = new System.Drawing.Size(64, 23);

			this.lblName.TabIndex = 4;

			this.lblName.Text = "Nome";

			this.lblName.TextAlign = System.Drawing.ContentAlignment.MiddleRight;

			// 

			// tbxName

			// 

			this.tbxName.Location = new System.Drawing.Point(272, 72);

			this.tbxName.Name = "tbxName";

			this.tbxName.Size = new System.Drawing.Size(200, 20);

			this.tbxName.TabIndex = 1;

			this.tbxName.Text = "";

			// 

			// btnProximo

			// 

			this.btnProximo.Location = new System.Drawing.Point(264, 192);

			this.btnProximo.Name = "btnProximo";

			this.btnProximo.TabIndex = 8;

			this.btnProximo.Text = "Proximo >";

			// 

			// btnUltimo

			// 

			this.btnUltimo.Location = new System.Drawing.Point(368, 192);

			this.btnUltimo.Name = "btnUltimo";

			this.btnUltimo.TabIndex = 9;

			this.btnUltimo.Text = "Ultimo >|";

			// 

			// btnAtualiza

			// 

			this.btnAtualiza.Location = new System.Drawing.Point(296, 16);

			this.btnAtualiza.Name = "btnAtualiza";

			this.btnAtualiza.TabIndex = 13;

			this.btnAtualiza.Text = "Atualiza";

			// 

			// btnPrimeiro

			// 

			this.btnPrimeiro.Location = new System.Drawing.Point(48, 192);

			this.btnPrimeiro.Name = "btnPrimeiro";

			this.btnPrimeiro.TabIndex = 6;

			this.btnPrimeiro.Text = "|< Primeiro";

			// 

			// btnAnterior

			// 

			this.btnAnterior.Location = new System.Drawing.Point(160, 192);

			this.btnAnterior.Name = "btnAnterior";

			this.btnAnterior.TabIndex = 7;

			this.btnAnterior.Text = "< Anterior";

			// 

			// btnNovo

			// 

			this.btnNovo.Location = new System.Drawing.Point(32, 16);

			this.btnNovo.Name = "btnNovo";

			this.btnNovo.TabIndex = 10;

			this.btnNovo.Text = "Novo";

			// 

			// btnDeleta

			// 

			this.btnDeleta.Location = new System.Drawing.Point(208, 16);

			this.btnDeleta.Name = "btnDeleta";

			this.btnDeleta.TabIndex = 12;

			this.btnDeleta.Text = "Deleta";

			// 

			// cbxnumeroConta

			// 

			this.cbxnumeroConta.DropDownWidth = 96;

			this.cbxnumeroConta.Location = new System.Drawing.Point(88, 72);

			this.cbxnumeroConta.Name = "cbxnumeroConta";

			this.cbxnumeroConta.Size = new System.Drawing.Size(96, 21);

			this.cbxnumeroConta.TabIndex = 0;

			// 

			// lblConta

			// 

			this.lblnumeroConta.Location = new System.Drawing.Point(0, 72);

			this.lblnumeroConta.Name = "lblnumeroConta";

			this.lblnumeroConta.Size = new System.Drawing.Size(80, 23);

			this.lblnumeroConta.TabIndex = 3;

			this.lblnumeroConta.Text = "No. Conta :";

			this.lblnumeroConta.TextAlign = System.Drawing.ContentAlignment.MiddleRight;

			// 

			// lblSaldo

			// 

			this.lblSaldo.Location = new System.Drawing.Point(184, 112);

			this.lblSaldo.Name = "lblSaldo";

			this.lblSaldo.Size = new System.Drawing.Size(80, 23);

			this.lblSaldo.TabIndex = 5;

			this.lblSaldo.Text = "Saldo  R$";

			this.lblSaldo.TextAlign = System.Drawing.ContentAlignment.MiddleRight;

			// 

			// Form1

			// 

			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);

			this.BackColor = System.Drawing.Color.LightGray;

			this.ClientSize = new System.Drawing.Size(488, 309);

			this.Controls.Add(this.lblDisplay);

			this.Controls.Add(this.btnCancela);

			this.Controls.Add(this.btnAtualiza);

			this.Controls.Add(this.btnDeleta);

			this.Controls.Add(this.btnEdita);

			this.Controls.Add(this.btnNovo);

			this.Controls.Add(this.btnUltimo);

			this.Controls.Add(this.btnProximo);

			this.Controls.Add(this.btnAnterior);

			this.Controls.Add(this.btnPrimeiro);

			this.Controls.Add(this.lblSaldo);

			this.Controls.Add(this.lblName);

			this.Controls.Add(this.lblnumeroConta);

			this.Controls.Add(this.tbxSaldo);

			this.Controls.Add(this.tbxName);

			this.Controls.Add(this.cbxnumeroConta);

			this.Name = "Form1";

			this.Text = "Cadastro Bancário";

			this.Load += new System.EventHandler(this.Form1_Load);

			this.ResumeLayout(false);

		}

		#endregion


		/// <summary>

		/// entrada principal da aplicação

		/// </summary>

		[STAThread]

		static void Main() 

		{

			Application.Run(new Form1());

		}


		private void Form1_Load(object sender, System.EventArgs e)

		{

                                    //define o modo padrao , bloqueia os controles , preenche as contas e exibe os dados

			opModo = "Ver";

			bloqueiaControles();

			preencheConta();

			mostraDados();

		}


		private void bloqueiaControles()

		{

                                 //bloqueia os controles

			opModo = "Ver";

			tbxName.ReadOnly = true;

			tbxSaldo.ReadOnly = true;


			btnAtualiza.Enabled = false;

			btnCancela.Enabled = false;

		}


		private void desbloqueiaControles()

		{

                                     //desbloqueia os controles

			tbxName.ReadOnly = false;

			tbxSaldo.ReadOnly = false;


			btnAtualiza.Enabled = true;

			btnCancela.Enabled = true;

		}


		private void preencheConta()

		{

			//preenche as contas

			for ( int i=0; i < Ds_banco.Tables["contasBancarias"].Rows.Count; i++)

			cbxnumeroConta.Items.Add(Ds_banco.Tables["contasBancarias"].Rows[i]["numeroConta"].ToString());

		}


		private void mostraDados()

		{

                                     //exibe os dados

			cbxnumeroConta.Text = Ds_banco.Tables["contasBancarias"].Rows[linhaAtual]["numeroConta"].ToString();

			tbxName.Text = Ds_banco.Tables["contasBancarias"].Rows[linhaAtual]["nomeCliente"].ToString();

			tbxSaldo.Text = Ds_banco.Tables["contasBancarias"].Rows[linhaAtual]["saldoConta"].ToString();

			//mostra a posicao do registro

			lblDisplay.Text = "Registro " + (linhaAtual + 1).ToString() + " de " +
                                       Ds_banco.Tables["contasBancarias"].Rows.Count.ToString();

		}


		private void btnPrimeiro_Click(object source, System.EventArgs e)

		{

			linhaAtual = 0;

			mostraDados();

		}


		private void btnAnterior_Click(object source, System.EventArgs e)

		{

			if ( linhaAtual > 0 )

				linhaAtual --;

			mostraDados();

		}


		private void btnProximo_Click(object source, System.EventArgs e)

		{

			if ( linhaAtual < Ds_banco.Tables["contasBancarias"].Rows.Count -1 )

				linhaAtual ++;

			mostraDados();

		}


		private void btnUltimo_Click(object source, System.EventArgs e)

		{

			linhaAtual = Ds_banco.Tables["contasBancarias"].Rows.Count -1;

			mostraDados();

		}


		private void btnAtualiza_Click(object source, System.EventArgs e)

		{


			if (opModo == "Novo")

			{	

				string novanumeroConta;

				novanumeroConta = cbxnumeroConta.Text;


				if ( !verificaUnicidade(novanumeroConta) )

				{

					MessageBox.Show("Número da conta já existe.!");

					cbxnumeroConta.Focus();

					return;

				}


                //atualiza dados 

                DataRow novaRow = Ds_banco.Tables["contasBancarias"].NewRow();

				novaRow["numeroConta"] = cbxnumeroConta.Text;

				novaRow["nomeCliente"] = tbxName.Text;

				novaRow["saldoConta"] = double.Parse(tbxSaldo.Text);

				Ds_banco.Tables["contasBancarias"].Rows.Add(newRow);

		

				cbxnumeroConta.Items.Add(cbxnumeroConta.Text);

				

				oleDbDataAdapter1.Update(Ds_banco,"contasBancarias");

				MessageBox.Show("Registro incluido com sucesso!");

			}


			if (opModo == "Edita")

			{

				string novanumeroConta;

				novanumeroConta = cbxnumeroConta.Text;


				if ( !verificaUnicidade(novanumeroConta) )

				{

					MessageBox.Show("Número da conta já existe!");

					cbxnumeroConta.Focus();

					return;

				}

				

				int index = cbxnumeroConta.Items.IndexOf(numeroConta);

				cbxnumeroConta.Items.RemoveAt(index);

				cbxnumeroConta.Items.Insert(index, cbxnumeroConta.Text);

				Ds_banco.Tables["contasBancarias"].Rows[linhaAtual]["numeroConta"] = cbxnumeroConta.Text;

				Ds_banco.Tables["contasBancarias"].Rows[linhaAtual]["nomeCliente"] = tbxName.Text;

				Ds_banco.Tables["contasBancarias"].Rows[linhaAtual]["saldoConta"] = double.Parse(tbxSaldo.Text);

				oleDbDataAdapter1.Update(Ds_banco,"contasBancarias");

				MessageBox.Show("Registro atualizado");

			}


			linhaAtual = 0;

			bloqueiaControles();

			mostraDados();


			btnNovo.Enabled = true;

			btnEdita.Enabled = true;

			btnDeleta.Enabled = true;

			btnPrimeiro.Enabled = true;

			btnUltimo.Enabled = true;

			btnAnterior.Enabled = true;

			btnProximo.Enabled = true;


			btnProximo.Focus();

		}


		private void btnEdita_Click(object source, System.EventArgs e)

		{

			linhaAtual = cbxnumeroConta.SelectedIndex;

			opModo = "Edita";

			desbloqueiaControles();


			btnCancela.Enabled = true;

			btnAtualiza.Enabled = true;


			btnNovo.Enabled = false;

			btnEdita.Enabled = false;

			btnDeleta.Enabled = false;

			btnPrimeiro.Enabled = false;

			btnUltimo.Enabled = false;

			btnAnterior.Enabled = false;

			btnProximo.Enabled = false;

			

			numeroConta = cbxnumeroConta.Text;

			cbxnumeroConta.Focus();

		}


		private void btnNovo_Click(object source, System.EventArgs e)

		{

			opModo = "Novo";

			desbloqueiaControles();

			

			cbxnumeroConta.Text = "";

			tbxName.Text = "";

			tbxSaldo.Text = "";


			btnCancela.Enabled = true;

			btnAtualiza.Enabled = true;


			btnNovo.Enabled = false;

			btnEdita.Enabled = false;

			btnDeleta.Enabled = false;

			btnPrimeiro.Enabled = false;

			btnUltimo.Enabled = false;

			btnAnterior.Enabled = false;

			btnProximo.Enabled = false;


			lblDisplay.Text = "";

		

			cbxnumeroConta.Focus();

		}


		private void btnCancela_Click(object source, System.EventArgs e)

		{

			bloqueiaControles();

			mostraDados();


			btnNovo.Enabled = true;

			btnEdita.Enabled = true;

			btnDeleta.Enabled = true;

			btnPrimeiro.Enabled = true;

			btnUltimo.Enabled = true;

			btnAnterior.Enabled = true;

			btnProximo.Enabled = true;


			btnProximo.Focus();

		}


		private void btnDeleta_Click(object source, System.EventArgs e)

		{

			int index = cbxnumeroConta.SelectedIndex;

                                      Ds_banco.Tables["contasBancarias"].Rows[index].Delete();

			oleDbDataAdapter1.Update(Ds_banco,"contasBancarias");

			cbxnumeroConta.Items.RemoveAt(index);

			linhaAtual = 0;

			mostraDados();

			MessageBox.Show("Registro excluido com sucesso.!");

		}


		private void cbxnumeroConta_Changed(object source, System.EventArgs e)

		{

			if (opModo == "Novo" || opModo == "Edita")

			{

				MessageBox.Show("Você não pode selecionar um número de conta neste modo!");

				cbxnumeroConta.Focus();

			}

			else

			{

				linhaAtual = cbxnumeroConta.SelectedIndex;

				mostraDados();

			}

		}


		private bool verificaUnicidade(string novanumeroConta)

		{

			string oldnumeroConta;

			foreach ( DataRow r in Ds_banco.Tables["contasBancarias"].Rows )

			{

				oldnumeroConta = (string) r["numeroConta"];

				if ( novanumeroConta == oldnumeroConta )

					return false;

			}


			return true;

		}

	}

}

Para testar o projeto, basta você abrir o SharpDevelop e abrir o arquivo form1.cs do projeto.

Por falar nisto, pegue o projeto aqui : cadastro bancario

Até a próxima!

é referência em Visual Basic no Brasil e autor dos livros "Aprenda Rápido: ASP" e "ASP, ADO e Banco de Dados na Internet". Mantenedor do site macoratti.net.

Ver perfil