VB 2005 - Criando uma classe para acesso a dados
É uma prática recomendável criar uma camada de acesso a dados e encapsular o seu código. Você ganha em produtividade e facilita a manutenção. |
A seguir apresento algumas sugestões de classes com código de acesso a dados que você pode usar em seus projetos.
Abra o Visual Basic 2005 Express e crie um projeto do tipo Windows Application onde serão criadas as classes.
No menu Project clique na opção Add Class e na janela Add New Item selecione o template Class informando o nome acessoBD. Será criado o arquivo acessoBD.vb onde podemos criar as nossas classes para acesso a dados. Neste arquivo podemos criar uma ou várias classes.
Começamos criando a classe AcessoBD com um construtor vazio e outro construtor onde definimos a string de conexão. O método getConexao retorna a conexão aberta e o método closeConexao fecha a conexão;
Nota: O modelo de configuração de formulário (Configuration Forms) não esta disponível em projetos Class Library pois não temos um arquivo App.Config para a DLL. Para ler o arquivo de configuração App.Config em sua aplicação VB 2005 , e exibir o resultado no console , você pode usar o seguinte código:
|
Vamos criar a seguir dois métodos sobrecarregados onde poderemos passar o nome de um procedimento armazenado - Stored Procedure - com parâmetros e no outro uma instrução SQL retornando um DataReader:
Veremos a seguir um exemplo de como usar as classes acima em um formulário Windows Forms.
Aproveitando o mesmo projeto onde criamos a classe AcessoBD inclua no formulário form1.vb um controle ListBox e um botão de comando. No evento Click do botão de comando inclua o seguinte código:
Private
Sub Button1_Click(ByVal
sender As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Click
Dim dr As SqlDataReader
dr = oDB.retornaDataReader("Select * from Customers")
ListBox1.Items.Add(dr(0) & " - " & dr(1))
Loop |
O resultado será o preenchimento do ListBox conforme figura abaixo:
Vamos agora criar um método que retorna um DataSet e que recebe o nome da stored procedure , o nome do DataTable a ser preenchido e a coleção de parâmetros:
Para usar o exemplo acima irei acessar o banco de dados Northwind.mdf e usar a stored procedure CustOrderHist existente. Esta stored procedure possui o parâmetro @CustomerID que deve ser informado para o método juntamente como valor de retorno desejado. O DataTable retornado irá ser exibido em um controle DataGridView no formulário;
Nota: A stored procedure CustOrderHist possui o seguinte código:
A seguir inclua o código abaixo no evento Load do formulário:
Private
Sub Form2_Load(ByVal
sender As
Object,
ByVal e
As System.EventArgs)
Handles
Me.Load
ds = oDados.retornaDataSet("CustOrderHist", "CustOrderHist", New SqlParameter("@CustomerID", "ALFKI"))
DataGridView1.DataSource = ds.Tables(0) Else MsgBox("Não há dados para este criterio") End If End Sub |
Executando o projeto para a stored procedure CustOrderHist e o cliente ALFKI iremos obter:
Note que a classe definida efetua o acesso ao banco de dados SQL Server e que eu não efetuei um tratamento de exceção nas mesmas. Deixo esta tarefa para você (dica: você pode apenas lançar a exceção (throw ex) ). Você pode criar mais métodos ou adaptar os métodos definidos ao seu projeto.
Pegue o projeto completo aqui: acessoDadosNet.zip
Aguardo você no próximo artigo .NET...
Referências: