C# - Acessando e atualizando dados (MS Access/Ado.net)


 Neste artigo vou apresentar um pequeno programa feito na linguagem C# que permite gerenciar informações básicas em um banco de dados Microsoft Access.

Vou apresentar uma aplicação Windows Forms feita na linguagem C# que acessa um banco de dados MS Access e permite realizar a manutenção de dados diretamente na interface usando ADO .NET.

Temos um banco de dados chamado log.mdb na raiz do projeto com a seguinte estrutura:

Recursos Usados

Criando o projeto Windows Forms

Vamos criar um projeto bem simples do tipo Windows Forms chamado AtualizaDB usando a linguagem C#.

No formulário Form1.cs inclua os seguintes controles a partir da ToolBox:

A seguir disponha os controles conforme mostra a figura abaixo:

Namespaces usados no projeto:

using System;
using System.Data;
using System.Data.OleDb;
using System.Windows.Forms;

Variáveis globais declaradas no formulário:

private DataTable dataTable1 = new DataTable();
private OleDbConnection oleDbConnection1 = new OleDbConnection();
private OleDbDataAdapter oleDbDataAdapter1 = new OleDbDataAdapter();

1- Código do construtor do formulário: Form1()

        Form1()
        {
            InitializeComponent();
            //define o provedor e a string de conexão com o banco de dados
            //preenche o datatable usando um adapter
            this.oleDbConnection1.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = |DataDirectory|\\log.mdb; Persist Security Info = True";
            this.oleDbDataAdapter1.SelectCommand = new OleDbCommand("SELECT ID, Field1, Field2 FROM Table1", this.oleDbConnection1);
            this.oleDbDataAdapter1.Fill(this.dataTable1);
            this.dgvDados.DataSource = dataTable1;
            //Inicializa o comando UPDATE
            this.oleDbDataAdapter1.UpdateCommand = new OleDbCommand("UPDATE Table1 SET Field1 = @field1, Field2 = @field2 WHERE ID = @id", this.oleDbConnection1);
            this.oleDbDataAdapter1.UpdateCommand.Parameters.AddWithValue("@field1", typeof(string)).SourceColumn = "Field1";
            this.oleDbDataAdapter1.UpdateCommand.Parameters.AddWithValue("@field2", typeof(string)).SourceColumn = "Field2";
            this.oleDbDataAdapter1.UpdateCommand.Parameters.AddWithValue("@id", typeof(int)).SourceColumn = "ID";
            //Inicializa o comando INSERT
            this.oleDbDataAdapter1.InsertCommand = new OleDbCommand("INSERT INTO Table1 (Field1, Field2) VALUES (@field1, @field2)", this.oleDbConnection1);
            this.oleDbDataAdapter1.InsertCommand.Parameters.AddWithValue("@field1", typeof(string)).SourceColumn = "Field1";
            this.oleDbDataAdapter1.InsertCommand.Parameters.AddWithValue("@field2", typeof(string)).SourceColumn = "Field2";
            //Inicializa o comando DELETE .
            this.oleDbDataAdapter1.DeleteCommand = new OleDbCommand("DELETE FROM Table1 WHERE ID = @id", this.oleDbConnection1);
            this.oleDbDataAdapter1.DeleteCommand.Parameters.AddWithValue("@id", typeof(int)).SourceColumn = "ID";
            //define o texto das colunas
            this.dgvDados.Columns["ID"].Visible = false;
            this.dgvDados.Columns["Field1"].HeaderText = "Nome";
            this.dgvDados.Columns["Field2"].HeaderText = "Sobrenome";
        }

2- Evento Click do link da primeira imagem

         private void btnAtualiza_Click(object sender, EventArgs e)
        {
            //Se você chamar o método abaixo, todas as alterações no banco de dados são salvas
            this.oleDbDataAdapter1.Update(dataTable1);
        }

Executando o projeto teremos o seguinte resultado:

Pegue o projeto completo aqui :  AtualizaMDB.zip

Todavia digo-vos a verdade, que vos convém que eu vá; porque, se eu não for, o Consolador não virá a vós; mas, quando eu for, vo-lo enviarei.
E, quando ele vier, convencerá o mundo do pecado, e da justiça e do juízo.
Do pecado, porque não crêem em mim;
Da justiça, porque vou para meu Pai, e não me vereis mais;

João 16:7-10

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Referências:


José Carlos Macoratti