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!








