C# - 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 esta 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 ...
José Carlos Macoratti