O Microsoft Office Access, é um sistema de base de dados que combina o Microsoft Jet Database Engine com uma interface gráfica do utilizador (graphical user interface). O mesmo permite o desenvolvimento rápido de aplicações que envolvem tanto a modelagem e estrutura de dados como também a interface a ser utilizada pelos utilizadores.
.mdb:
Dim ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Application.StartupPath & "BD.mdb"
.accdb:
Dim ConnectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & Application.StartupPath & "BD.accdb"
Application.StartupPath
Procura directamente no directório da nossa aplicação, mais propriamente na pasta debug. Sendo assim, a minha base de dados está alojada no seguinte directório: AplicaçãobindebugBD.mdb.
Nos exemplos abaixo, partes do código não serão explicadas pois presumo que já estejam devidamente aprendidas. Mesmo assim, deixarei algumas referências para outros artigos!
Imports System.Data.OleDb
A query SELECT têm por fim obter todos os resultados da base de dados consoante a nossa instrução. Sendo assim, vou demonstrar dois tipos de SELECTs: Os resultados todos e um só resultado.
Dim ConnectionString As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Application.StartupPath & "BD.mdb") Dim query As String = "SELECT * FROM Clientes" Dim DataAdapter As New OleDbDataAdapter(query, ConnectionString) Dim MyData As New DataSet DataAdapter.Fill(MyData, "Clientes") Me.DataGridView1.DataSource = MyData.Tables("Clientes") ' Neste caso utilizei uma datagridview para visualizar os dados
Dim ConnectionString As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Application.StartupPath & "BD.mdb") Dim query As String = "SELECT * FROM Clientes WHERE ID = @IDCliente" Dim command As New OleDbCommand(query, ConnectionString) ' Seleccionar os dados APENAS do cliente 3 command.Parameters.Add("@IDCliente", OleDbType.Integer).Value = 3 Dim DataAdapter As New OleDbDataAdapter(command) Dim MyData As New DataSet DataAdapter.Fill(MyData, "Clientes") Me.DataGridView1.DataSource = MyData.Tables("Clientes") ' Neste caso utilizei uma datagridview para visualizar os dados
A inserção de dados é importante para qualquer aplicação e é muito simples de se fazer!
Dim ConnectionString As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Application.StartupPath & "BD.mdb") Dim query As String = "INSERT INTO Clientes([Nome], [Empresa]) VALUES (@Nome, @Empresa)" Dim command As New OleDbCommand(query, ConnectionString) command.Parameters.Add("@Nome", OleDbType.VarChar).Value = NomeTextbox.Text command.Parameters.Add("@Empresa", OleDbType.VarChar).Value = EmpresaTextbox.Text ConnectionString.Open() Dim x As Integer = command.ExecuteNonQuery() If x < 1 Then MessageBox.Show("Erro ao inserir", My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error) Else MessageBox.Show("Registo inserido com sucesso!", My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Information) End If ConnectionString.Close() command = Nothing
Qualquer aplicação que utilize base de dados precisa de actualização de dados, seja por parte do utilizador, seja por parte de quem desenvolve a aplicação.
Dim ConnectionString As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Application.StartupPath & "BD.mdb") Dim query As String = "UPDATE Clientes SET [Nome] = @Nome, [Empresa] = @Empresa WHERE ID = @IDCliente" Dim command As New OleDbCommand(query, ConnectionString) command.Parameters.Add("@Nome", OleDbType.VarChar).Value = NomeTextbox.Text command.Parameters.Add("@Empresa", OleDbType.VarChar).Value = EmpresaTextbox.Text ' Actualiza apenas os dados do cliente que consta na Textbox command.Parameters.Add("@IDCliente", OleDbType.Integer).Value = IDClienteTextbox.Text ConnectionString.Open() Dim x As Integer = command.ExecuteNonQuery() If x < 1 Then MessageBox.Show("Erro ao actualizar", My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error) Else MessageBox.Show("Actualizado com sucesso!", My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Information) End If ConnectionString.Close() command = Nothing
Por fim, mas não menos importante, resta-nos a eliminação de dados.
Dim ConnectionString As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Application.StartupPath & "BD.mdb") Dim query As String = "DELETE FROM Clientes WHERE ID = @IDCliente" Dim command As New OleDbCommand(query, ConnectionString) ' Elimina apenas o cliente que consta na Textbox command.Parameters.Add("@IDCliente", OleDbType.Integer).Value = IDClienteTextbox.Text ConnectionString.Open() Dim x As Integer = command.ExecuteNonQuery() If x < 1 Then MessageBox.Show("Erro ao eliminar", My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error) Else MessageBox.Show("Eliminado com sucesso!", My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Information) End If ConnectionString.Close() command = Nothing
Existe sempre um problema em torno das bases de dados e de como nos devemos comportar com as mesmas, espero, com este artigo, ter sido explícito e útil a quem o ler. As bases de dados são um ponto fulcral na programação.
Artigo escrito por bioshock