ASP.NET - Acessando arquivos DBF
 


 

Você precisa acessar e exibir os dados presentes em um arquivo DBF (padrão Xbase) na Web ?

 

Então vem comigo que eu vou te mostrar como fazer isto.

 

Neste artigo eu vou acessar o arquivo DBF Teste.dbf que esta presente na pasta c:\teste.

 

Este arquivo possui os dados da tabela Authors do arquivo Biblio.mdb (lembra dele) e apresenta três campos :

 

Au_ID  - que representa o código do autor
Author - que representa o nome do autor

Year Born - que representa o ano de nascimento do autor

 

Podemos usar um arquivo DBF usando o provedor OLE DB e é isto que eu vou fazer .

 

Como pretendo exibir os dados na web vou criar uma página ASP.NET usando o WebMatrix e exibir os dados em um controle DataGrid.

 

Abra então o Web Matrix e inclua um componente DataGrid na aba Design.

 

A seguir digite o código abaixo na guia Code. Este é o código que acessa o arquivo DBF.

 

Sub Page_Load(sender As Object, e As EventArgs)

Dim con as OledbConnection
Dim cmd as OleDbCommand
Dim rd as OleDbDataReader


con = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\teste;Extended Properties=dBase III")

con.Open()

cmd = new OleDbCommand("Select * from TESTE.DBF Where Au_ID < 30", con)

rd = cmd.ExecuteReader()

datagrid1.DataSource = rd
datagrid1.dataBind

rd.close
cmd.dispose
con.dispose

end sub
 

 

Na guia ALL inclua as declarações de imports  referente aos namespace System.Data.OLeDb , conforme abaixo:

 

<%@ Page Language="VB" Debug="True" Trace="false" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>

 

O código completo deverá ser o seguinte :

 

 

A única coisa digna de menção é a string de conexão :

 

con = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\teste;Extended Properties=dBase III")

 

Nela você deve atentar para o seguinte :

  1. Estou definindo como fonte de dados a pasta onde esta localizado o arquivo DBF ( c:\teste )

  2. Estou informando o formato da fonte de dados via Extended Properties como dBaseIII

  3. Estou selecionando do arquivo DBF somente os dados cujo campo AU_ID forem menores que 30 conforme instrução SQL : Select * from TESTE.DBF Where Au_ID < 30"

O resultado da execução da página no servidor WebMatrix é exibido abaixo:

 

 

Eu sei , é apenas ASP.NET , mas eu gosto..
 


José Carlos Macoratti