Conectar-se a um banco de dados do Access em aplicativos do .NET Framework
Observação
Os conjuntos de dados e as classes relacionadas são tecnologias herdadas do .NET Framework do início dos anos 2000 que permitem que os aplicativos trabalhem com dados na memória enquanto os aplicativos estão desconectados do banco de dados. As tecnologias são bastante úteis em aplicativos que permitem que os usuários modifiquem dados e persistam as alterações no banco de dados. Embora os conjuntos de dados tenham se mostrado uma tecnologia muito bem-sucedida, é recomendado que os novos aplicativos .NET usem o Entity Framework Core. O Entity Framework proporciona uma forma mais natural de trabalhar com dados tabulares como modelos de objeto e conta com uma interface de programação mais simples.
Você pode se conectar a um banco de dados do Access (um arquivo .mdb
ou um arquivo .accdb
) usando o Visual Studio. Depois de definir a conexão, os dados são exibidos na janela Fontes de Dados. Nela, é possível arrastar tabelas ou exibições para a superfície de design.
Observação
Se você estiver usando o Visual Studio para se conectar a bancos de dados do Access, precisará estar ciente de que as versões do Visual Studio anteriores ao Visual Studio 2022 são todos processos de 32 bits. Isso significa que algumas das ferramentas de dados do Visual Studio 2019 e anterior só poderão se conectar a bancos de dados do Access usando provedores de dados de 32 bits.
Se você estiver usando o Visual Studio 2022 para se conectar a bancos de dados do Access, precisará estar ciente de que o Visual Studio 2022 agora é um processo de 64 bits. Isso significa que algumas das ferramentas de dados do Visual Studio não poderão se conectar a bancos de dados do Access usando provedores de dados de 32 bits.
Se precisar manter aplicativos de 32 bits que se conectam a bancos de dados do Access, você ainda poderá compilar e executar o aplicativo com o Visual Studio 2022. No entanto, se você precisar usar qualquer uma das Ferramentas de Dados do Visual Studio, como o Gerenciador de Servidores, o Assistente de Fonte de Dados ou o Designer de Conjunto de Dados, precisará usar uma versão anterior do Visual Studio que ainda seja um processo de 32 bits. A última versão do Visual Studio que foi um processo de 32 bits foi o Visual Studio 2019.
Se você planeja converter o projeto para um processo de 64 bits, é recomendável usar o mecanismo de banco de dados do Access do Microsoft de 64 bits, também chamado de ACE (mecanismo de banco de dados do Access). Confira Provedor OLE DB para Jet e Driver ODBC são versões exclusivas de 32 bits para obter mais informações.
Pré-requisitos
Para usar estes procedimentos, você precisará:
- Visual Studio
- Um projeto Windows Forms ou WPF
- Um banco de dados do Access (arquivo
.accdb
) ou um banco de dados do Access 2000-2003 (arquivo.mdb
). Siga o procedimento correspondente ao tipo de arquivo.
Criar um conjunto de dados para um arquivo .accdb
Conecte-se a bancos de dados criados com o Microsoft 365, o Access 2016, o Access 2013, o Access 2010 ou o Access 2007 usando o procedimento a seguir.
Abra um projeto de aplicativo do Windows Forms ou da WPF no Visual Studio.
Para abrir a janela Fontes de Dados, pressione Ctrl+Q, insira "dados" na caixa de pesquisa e escolha a janela Fontes de Dados. Ou, no menu Exibir, selecioneOutras Janelas>Fontes de Dados. Ou, no teclado, pressione Shift+Alt+D.
Na janela Fontes de Dados, clique em Adicionar Nova Fonte de Dados.
O Assistente de Configuração de Fonte de Dados é aberto.
Selecione Banco de Dados na página Escolher um Tipo de Fonte de Dados e selecione Avançar.
Selecione Conjunto de dados na página Escolher um Modelo de Banco de Dados e, em seguida, selecione Avançar.
Na página Escolha a Conexão de Dados, selecione Nova Conexão para configurar uma nova conexão de dados.
A caixa de diálogo Adicionar Conexão será aberta.
Se Fonte de dados não estiver definido como Arquivo de Banco de Dados do Microsoft Access, selecione o botão Alterar.
A caixa de diálogo Alterar Fonte de Dados é aberta. Na lista de fontes de dados, escolha Arquivo de Banco de Dados do Microsoft Access. A opção Provedor de Dados .NET Framework para OLE DB já está pré-selecionada. Selecione OK.
Selecione Procurar ao lado de Nome do arquivo de banco de dados, navegue até o arquivo
.accdb
e selecione Abrir.Observação
Se o número de bit (32 ou 64 bits) do Microsoft Office e do Visual Studio não corresponder, você verá um erro ao se conectar a um banco de dados do Access. No Visual Studio 2019, você receberá um erro informando que o provedor de banco de dados não está registrado. No Visual Studio 2022, você verá um erro informando que não pode se conectar a um provedor de dados de 32 bits. Para resolver esse erro, se você estiver usando uma versão de 32 bits do Office, certifique-se de estar usando o Visual Studio 2019 ou anterior; para uma versão de 64 bits do Office, você precisa do Visual Studio 2022 ou posterior.
Insira um nome de usuário e uma senha (se necessário) e escolha OK.
Selecione Avançar na página Escolher a Conexão de Dados.
Você pode receber uma caixa de diálogo informando que o arquivo de dados não está no projeto atual. Selecione Sim ou Não.
Selecione Avançar na página Salvar cadeia de conexão no arquivo de Configuração de Aplicativo.
Expanda o nó Tabelas na página Escolher Objetos do Banco de Dados.
Selecione as tabelas ou exibições que deseja incluir no conjunto de dados e selecione Concluir.
O Conjunto de Dados é adicionado ao projeto e as tabelas e as exibições são mostradas na janela Fontes de Dados.
Em máquinas de 64 bits com o mecanismo de banco de dados do Access de 64 bits, é necessário garantir que o aplicativo seja executado como um aplicativo de 64 bits. Abra as propriedades do projeto (pressione Alt+Enter ou clique com o botão direito do mouse no nó do projeto e selecione Propriedades). Na guia Compilar, desmarque a caixa de seleção Preferir 32 bits.
Criar um conjunto de dados para um arquivo .accdb
Conecte-se a bancos de dados criados com o Microsoft 365, o Access 2016, o Access 2013, o Access 2010 ou o Access 2007 usando o procedimento a seguir.
Abra um projeto de aplicativo do Windows Forms ou da WPF no Visual Studio.
Para abrir a janela Fontes de Dados, pressione Ctrl+Q, insira "dados" na caixa de pesquisa e escolha a janela Fontes de Dados. Ou, no menu Exibir, selecioneOutras Janelas>Fontes de Dados. Ou, no teclado, pressione Shift+Alt+D.
Na janela Fontes de Dados, clique em Adicionar Nova Fonte de Dados.
O Assistente de Configuração de Fonte de Dados é aberto.
Selecione Banco de Dados na página Escolher um Tipo de Fonte de Dados e selecione Avançar.
Selecione Conjunto de dados na página Escolher um Modelo de Banco de Dados e, em seguida, selecione Avançar.
Na página Escolha a Conexão de Dados, selecione Nova Conexão para configurar uma nova conexão de dados.
A caixa de diálogo Adicionar Conexão será aberta.
Se Fonte de dados não estiver definido como Arquivo de Banco de Dados do Microsoft Access, selecione o botão Alterar.
A caixa de diálogo Alterar Fonte de Dados é aberta. Na lista de fontes de dados, escolha Arquivo de Banco de Dados do Microsoft Access. A opção Provedor de Dados .NET Framework para OLE DB já está pré-selecionada. Selecione OK.
Selecione Procurar ao lado de Nome do arquivo de banco de dados, navegue até o arquivo
.accdb
e selecione Abrir.Observação
Se o número de bit (32 ou 64 bits) do Microsoft Office e do Visual Studio não corresponder, você verá um erro ao se conectar a um banco de dados do Access. No Visual Studio 2019, você receberá um erro informando que o provedor de banco de dados não está registrado. No Visual Studio 2022, você verá um erro informando que não pode se conectar a um provedor de dados de 32 bits. Para resolver esse erro, se você estiver usando uma versão de 32 bits do Office, certifique-se de estar usando o Visual Studio 2019 ou anterior; para uma versão de 64 bits do Office, você precisa do Visual Studio 2022 ou posterior.
Insira um nome de usuário e uma senha (se necessário) e escolha OK.
Selecione Avançar na página Escolher a Conexão de Dados.
Você pode receber uma caixa de diálogo informando que o arquivo de dados não está no projeto atual. Selecione Sim ou Não.
Selecione Avançar na página Salvar cadeia de conexão no arquivo de Configuração de Aplicativo.
Expanda o nó Tabelas na página Escolher Objetos do Banco de Dados.
Selecione as tabelas ou exibições que deseja incluir no conjunto de dados e selecione Concluir.
O Conjunto de Dados é adicionado ao projeto e as tabelas e as exibições são mostradas na janela Fontes de Dados.
Criar um conjunto de dados para um arquivo .mdb
Conecte-se a bancos de dados criados com o Access 2000-2003 usando o procedimento a seguir.
Abra um projeto de aplicativo do Windows Forms ou da WPF no Visual Studio.
No menu Exibir, selecioneOutras Janelas>Fontes de Dados.
Na janela Fontes de Dados, clique em Adicionar Nova Fonte de Dados.
O Assistente de Configuração de Fonte de Dados é aberto.
Selecione Banco de Dados na página Escolher um Tipo de Fonte de Dados e selecione Avançar.
Selecione Conjunto de dados na página Escolher um Modelo de Banco de Dados e, em seguida, selecione Avançar.
Na página Escolha a Conexão de Dados, selecione Nova Conexão para configurar uma nova conexão de dados.
Se a fonte de dados não for Arquivo de Banco de Dados do Microsoft Access (OLE DB), selecione Alterar para abrir a caixa de diálogo Alterar Fonte de Dados, selecione Arquivo de Banco de Dados do Microsoft Access e, em seguida, OK.
No Nome do arquivo de banco de dados, especifique o caminho e o nome do arquivo
.mdb
ao qual deseja se conectar e, em seguida, selecione OK.Selecione Avançar na página Escolher a Conexão de Dados.
Selecione Avançar na página Salvar cadeia de conexão no arquivo de Configuração de Aplicativo.
Expanda o nó Tabelas na página Escolher Objetos do Banco de Dados.
Selecione quais tabelas ou exibições deseja ter no conjunto de dados e selecione Concluir.
O Conjunto de Dados é adicionado ao projeto e as tabelas e as exibições são mostradas na janela Fontes de Dados.
Revise o código gerado
As ferramentas de dados são configuradas para gerar muito código automaticamente ao executar determinadas operações no Designer de Formulários. Por exemplo, quando você arrasta e solta uma tabela no formulário, um DataGridView
é adicionado e o código é criado para conectar os dados com o controle. Você pode exibir esse código no arquivo *.Designer.cs
. O Visual Studio adiciona vários membros privados:
private Database11DataSet database11DataSet;
private System.Windows.Forms.BindingSource ordersBindingSource;
private Database11DataSetTableAdapters.OrdersTableAdapter ordersTableAdapter;
private Database11DataSetTableAdapters.TableAdapterManager tableAdapterManager;
private System.Windows.Forms.BindingNavigator ordersBindingNavigator;
private System.Windows.Forms.ToolStripButton bindingNavigatorAddNewItem;
private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem;
private System.Windows.Forms.ToolStripButton bindingNavigatorDeleteItem;
private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem;
private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem;
private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator;
private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem;
private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator1;
private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem;
private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem;
private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator2;
private System.Windows.Forms.ToolStripButton ordersBindingNavigatorSaveItem;
private System.Windows.Forms.DataGridView ordersDataGridView;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn6;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn7;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn8;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn9;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn10;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn11;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn12;
Se você expandir a região oculta, você pode ver que o Visual Studio também adiciona uma grande quantidade de código para configurar o controle DataGridView
com vinculação de dados para a tabela arrastada para o formulário.
Além disso, no arquivo code-behind do formulário principal, o Visual Studio adiciona código que processa a ação de salvar para gravar alterações interativas nos dados e o código que carrega a tabela no adaptador de tabela.
private void ordersBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.ordersBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.database11DataSet);
}
private void Form1_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'database11DataSet.Orders' table. You can move, or remove it, as needed.
this.ordersTableAdapter.Fill(this.database11DataSet.Orders);
}
Parabéns! Com uma pequena ajuda do Visual Studio, você criou uma experiência de edição baseada em formulário para uma tabela de dados do Access.
Próximas etapas
O conjunto de dados recém-criado está disponível na janela Fontes de Dados. Agora é possível realizar qualquer uma das seguintes tarefas:
Selecione itens na janela Fontes de Dados e arraste-os para sua superfície de design ou formulário (consulte Associar controles do Windows Forms a dados no Visual Studio ou Visão geral da associação de dados do WPF).
Abra a fonte de dados no Designer de Conjunto de Dados para adicionar ou editar os objetos que constituem o conjunto de dados.
Adicione lógica de validação ao evento ColumnChanging ou RowChanging das tabelas de dados no conjunto de dados (consulte Validar dados em conjuntos de dados).