Grande parte das aplicações em geral, no ato da instalação, a base de dados do sistema é extraída com os demais arquivos dependentes (DLL, INI, OCX, XML etc). Por vezes, tive que criar uma rotina que criasse a base de dados em tempo de execução, na primeira utilização do programa. Pensando nisso, que tal criarmos uma base de dados Microsoft Access (com uma tabela e com alguns registros inseridos) em tempo de execução?
Para demonstrar, iremos utilizar o Visual Studio 2010 Ultimate e linguagem VB.NET.
Abra o Visual Studio e crie um novo projeto (File > New > Project) do tipo Windows Forms Application em linguagem VB.NET.
Adicione 3 controles do tipo Button no formulário Form1, com as legendas alteradas de acordo com a tabela abaixo.
Controle | Propriedade Text |
Button1 | Criar banco MDB |
Button2 | Criar tabela ‘Contato’ |
Button3 | Inserir registros |
A interface do Form1 deve ser semelhante ao da imagem .
Vamos adicionar a referência Microsoft ADO Ext. for DLL and Security ao projeto, que é o recurso que vai agregar a funcionalidade de criação da base MDB. Clique no menu Project > Add Reference e clique no botão OK.
Primeiramente, vamos escrever a rotina que irá criar a base de dados MDB em um diretório do computador. Dê um duplo-clique no botão “Criar banco MDB” e escreva a listagem abaixo no evento Click.
Public Class Form1
Private Const CONNECTION_STRING = "Provider=Microsoft.Jet.Oledb.4.0;" & _
"Data Source=C:\POnLine.mdb"
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim catalogo As New ADOX.Catalog
catalogo.Create(CONNECTION_STRING)
MessageBox.Show("Banco ""POnLine.mdb"" criado com sucesso!")
End Sub
End Class
Perceba que criamos uma constante fora do contexto do evento Click, para que fique visível para todo o formulário. Seguindo, dê um duplo-clique no botão “Criar tabela ‘Contato’” e escreva a rotina abaixo.
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim conn As New OleDb.OleDbConnection(CONNECTION_STRING)
Dim cmd As New OleDb.OleDbCommand("CREATE TABLE Contato (ID int not null, Nome varchar(50))", conn)
conn.Open()
cmd.ExecuteNonQuery()
MessageBox.Show("Tabela 'Contato' criada com sucesso!")
End Sub
A rotina acima cria a tabela Contato no banco de dados criado. Por fim, proceda da mesma forma para o terceiro botão, a fim de inserirmos alguns registros de exemplo.
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim conn As New OleDb.OleDbConnection(CONNECTION_STRING)
Dim cmd As New OleDb.OleDbCommand()
cmd.Connection = conn
cmd.CommandType = CommandType.Text
conn.Open()
cmd.CommandText = "INSERT INTO Contato VALUES (1, 'Contato 1')"
cmd.ExecuteNonQuery()
cmd.CommandText = "INSERT INTO Contato VALUES (2, 'Contato 2')"
cmd.ExecuteNonQuery()
cmd.CommandText = "INSERT INTO Contato VALUES (3, 'Contato 3')"
cmd.ExecuteNonQuery()
MessageBox.Show("Registros inseridos com sucesso!")
End Sub
Nosso exemplo está pronto, execute a aplicação e teste seguindo a sequência dos botões, ou seja, crie o banco, em seguida a tabela e por fim insira os registros. Após a execução do programa, o resultado que obtive foi este:
Fico por aqui, e até a próxima!