 C#
- Acessando Ms Access em uma aplicação Windows Forms
C#
- Acessando Ms Access em uma aplicação Windows Forms
Vou mostrar como acessar o MS Access usando a linguagem C#.
Vou usar o banco de dados Northwind.mdb, e, se você ainda não tem pode baixá-lo aqui:
Após o fazer o download você pode criar uma pasta no drive C: com o nome dados e copiar nela o arquivo.
Desta forma teremos o seguinte caminho para o banco de dados : c:\dados\Northwind.mdb. Este será o caminho usado no exemplo do artigo , se você desejar alterar altere também o caminho na string de conexão.
Criando o projeto no SharpDevelop 2.2
Vamos criar uma nova solução C# usando o SharpDevelop 2.2 (você pode usar o Visual C# Express Edition) com o nome daoAccess através do menu Arquivo -> Novo -> Solução , selecionando o Modelo Aplicação Windows.
|  | 
Neste projeto eu vou mostrar
Como você pode notar , um projeto muito simples pode nos ensinar muitas coisas...
Antes de iniciar vamos incluir uma referência no nosso projeto:
Clique com o botão direito do mouse sobre o projeto e selecione Adicionar Referência;
Selecione a referência System.Configuration;
|  | 
Clique no botão OK;
Vamos criar um arquivo App.Config para podermos armazenar a string de conexão.
Clique com o botão direito do mouse sobre o projeto e selecione Adicionar -> Novo Item;
Na janela Nova Arquivo , selecione Misc e App.Config e clique em Criar;
|  | 
Inclua o código destacado em negrito referente a string de conexão para o Ms Access do nosso exemplo onde estamos acessando o banco de dados Northwind.mdb localizado na pasta c:\dados; (Você pode alterar a senha a seu critério);
| <?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <!-- Example connection to a SQL Server Database on localhost. --> <!-- <add name="ExampleConnectionString" connectionString="Data Source=.;Initial Catalog=DBName;Integrated Security=True" providerName="System.Data.SqlClient" /> --> <add name="AccessConnectionString" connectionString="Provider=Microsoft.JET.OLEDB.4.0;data source=c:\dados\Northwind.mdb" /> </connectionStrings> <appSettings> <!-- access these values via the property: System.Configuration.ConfigurationManager.AppSettings[key] --> <add key="Setting1" value="Very" /> <add key="Setting2" value="Easy" /> </appSettings> </configuration> | 
Vamos agora criar uma classe chamada daoAccess onde iremos usar o padrão Singleton para obter uma única instância da conexão com o Ms Access;
Clique com o botão direito sobre o projeto e selecione Adicionar -> Novo Item;
A seguir selecione C# e em modelo selecione Classe informando o nome daoAccess;
A seguir digite o código abaixo para esta classe:
| using System;
using System.Data.OleDb;
using System.Configuration;
namespace daoAccess
{
	/// <summary>
	/// Acesso a um banco de dados Microsoft Access
	/// usando o padrão Singleton
	/// </summary>
	public class daoAccess
	{
		private static readonly daoAccess instanciaAccess = new daoAccess();
		
		private daoAccess(){	}
		
		public static daoAccess getInstancia()
		{
			return instanciaAccess;
		}
		
		public OleDbConnection getConexao()
		{
			string conn = ConfigurationManager.ConnectionStrings["AccessConnectionString"].ToString();
			return new OleDbConnection(conn);
		}
	}
} | 
No formulário mainform.cs inclua um componente ListBox e um componente Button defina a opção Sair conforme o leiaute abaixo;
|  | 
Agora defina os namespaces que iremos usar neste formulário :
| using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; using System.Data.OleDb; using System.Data; | 
No evento Load do formulário temos a chamada da rotina initMsAccessSingleton();
| void MainFormLoad(object sender, EventArgs e)
{
     initMsAccessSingleton();
} | 
O código da rotina initMsAccessSingleton() esta abaixo e usa um DataSet para preencher um DataAdapter e assim exibir o nome da empresa no ListBox através de um laço foreach;
| public void initMsAccessSingleton()
{
	using (OleDbConnection conexaoAccess = daoAccess.getInstancia().getConexao())
	{
		try
		{
		conexaoAccess.Open();
		
		 // cria o dataset
                           DataSet ds = new DataSet();
 		 
		// cria o adapter e preenche o dataset
		 OleDbDataAdapter adapter = new OleDbDataAdapter("Select * from Customers", conexaoAccess);
		 adapter.Fill(ds);
		 
		      DataTable dt = ds.Tables[0];
		     foreach (DataRow dr in dt.Rows) {
		          listBox1.Items.Add(dr["CompanyName"].ToString());
		      }
		}
		catch (OleDbException oledbex)
		{
		    MessageBox.Show("Erro de acesso aos dados " + oledbex.Message,"Erro");
		}
		finally
		{
		      //fecha a conexao
		      conexaoAccess.Close();
		}
	}
} | 
Executando o projeto iremos obter o ListBox preenchido conforme a figura abaixo;
|  | 
A pegue o projeto completo aqui:
 daoAccess.zip
daoAccess.zip
Eu sei é apenas C# mas eu gosto...

Referências:
José Carlos Macoratti