Conectando um banco de dados Access
Como é de se imaginar o ADO.NET incorpora muito mais flexibilidade que o ADO e ele também permite acesso a vários bancos de dados como por exemplo: MS Access, MS Excel (tudo bem não é banco mas também podemos acessar os dados de uma planilha), MS Sql Server, Oracle e outros mais, no nosso caso, usaremos o Access mesmo!!
Os seguintes namespaces nos permitem acessar banco de dados:
· System.Data
· System.Data.ADO
· System.Data.Oledb
· System.Data.SQL
· System.Data.SQLTypes
Para requistar dados de um banco de dados precisamos de uma conexão com o mesmo, e um objeto que nos permite isso é o OleDbConnection. Além desse objeto precisamos ainda indicar onde se encontra o banco de dados, de que tipo ele é, e algumas coisas mais, para isso usamos uma string de conexão que será passada ao objeto OleDbConnection. Depois disso usaremos o método Open do Objeto que instanciaremos.
Acho que está meio vago, você não acham? Então vamos a exemplificar.
Primeiro importe os dois namespace:
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.Oledb" %>
Para se conectar ao banco de dados usaremos a seguinte string de conexão:
Dim StringConn as string="Provider=Microsoft.Jet.OLEDB.4.0; Data SOURCE=" & MapPath("./BancoDeDados") & ";"
Instanciamos o objeto objConn:
Dim objConn as New OleDBConnection(StringConn)
E por fim abriremos o banco de dados com o método Open():
ObjConn.Open()
Uma vez aberta a conexão com o banco de dados, poderemos agora requistar os dados armazenados nas tabelas dentro dele. O objeto que nos permite realizar consultas em um banco de dados é o OleDbCommand. Vejamos:
Crie uma String de consulta Sql, por exemplo:
StrSql = "SELECT * FROM Tabela"
Onde Tabela é o nome da tabela dentro do banco de dados.
Para realizar a consulta crie um objeto do tipo OleDBCommand, assim:
Dim objComd as New OleDBCommand(strSql, objconn)
Veja que nos passamos dois parâmetros para a criação do objeto. O primeiro indica a o que iremos buscar no banco de dados e o segundo indica a conexão como banco de dados, que foi mostrada acima.
Uma mudança que aconteceu do ADO para o ADO.NET é que com o segundo nos temos métodos diferentes um para inserir dados ou atualizar (ExecuteNonQuery à não retorna nada!!) ou para requisitar dados (ExecuteReaderà retorna dados da consulta!!).
Vamos dar uma olhada no ExecuteReader:
Dim objReader as OleDbDataReader
ObjReader = objComd.ExecuteReader
Instanciamos o objeto que receberá os dados e jogamos os dados nele através do método ExecuteReader do objeto OleDBCommand.
Para mandar escrever:
While objReader.Read
Response.write(objReader.GetValue(0) & "<br>")
End While
O método GetValue() diz para ler a primeira coluna do registro atual, o 0(zero) quer dizer a primeira coluna, a segunda é 1, a terceira é 2 e assim por diante.
Abaixo segue uma lista de outros métodos do objeto OleDbDataReader.
·GetBoolean(x)
·GetByte(x) - Retorna um Byte
·GetBytes(x) - Retorna os dados como um vetor do tipo Byte.
·GetChar(x) - Retorna o caracter.
·GetChars(x) - Retorna um vetor de caracter.
·GetDataTypeName(x) - Retorna o tipo de dados da coluna especificada.
·GetDateTime(x)
·GetDecimal(x)
·GetDefaultStream(x) - Retorna um "Stream object"
·GetDouble(x)
·GetFieldType(x) - Retorna de que tipo é o dado.que é na coluna especificada por x. ·GetFloat(x)
·GetGuid(x) - Retorna o valor como um Identificador Global Único de Valor (GUID - Globally Unique Idetifier Value)
·GetInt16(x)
·GetInt32(x)
·GetInt64(x)
·GetName(x) - Retorna o nome da coluna.
·GetOrdinal(name) - Retorna o index da coluna dado o nome da coluna.
·GetString(x)
·GetTimeSpan(x)
·GetValue(x) - retorna o dado no formato nativo.
·GetValues(values()) - Retorna todos os atributos da coluna e os coloca em values().
O código completo ficaria assim:
<%@ Import Namespace="System.Data.OLEDB" %>
<%@ Import Namespace="System.Data" %>
<script language="VB" runat="server">
Sub Page_Load(Src As Object, E As EventArgs)
Dim StringConn as string ="PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.mappath("banco.mdb") & ";"
Dim objConn as New OleDBConnection(StringConn)
ObjConn.Open()
Dim StrSql as string = "SELECT * FROM tabela"
Dim objComd as New OleDBCommand(strSql, objconn)
Dim objReader as OleDbDataReader
ObjReader = objComd.ExecuteReader
While ObjReader.Read
Response.write(objReader.GetValue(0) & "<br>")
End While
objConn.Close()
End Sub
</script>
<html><head>
<title>Buscando dados do banco de dados!</title>
</head>
<body bgcolor="#FFFFFF">
</body></html>
Algumas observações:
Vimos que a string de conexão com o banco de dados é igual à utilizada no "Clássico" ASP, a função MapPath() do objeto Server também foi incorporada ao ASP+, devido a esse fato nos não falamos sobre esses itens pois estou supondo que você já saiba. Caso você seja um iniciante mande-me um e-mail que eu lhe passarei algumas dicas, OK?
Bom, acho que por hoje é só, no nosso próximo artigo nos trataremos da inserção de dados no banco de dados, espero que você tenha tirado algum proveito desse artigo.
Abraço, Eder Filardi
Dica:
Confira todo nosso conteúdo de
.NET no site.
Links patrocinados
Últimos artigos do editor
Destaques
Como assinar um RSS
Aprenda a assinar um blog/site utilizando o agregador de notícias em formato RSS
Peixe Grande 2008
O Oficina da Net está este ano participando do Projeto Peixe Grande 2008 na categoria de Blog. Ajude-nos vote!
iPhone 3G no Brasil
O smartphone da Apple chegou ao Brasil com a tecnologia de terceira geração de telefonia.
Oi Eder Filardi! Estou comecando a trabalhar com Visual Studio 2005. E estou um pouco perdida em relação a conexão a banco de dados. Poderia me ajudar? Obrigada! Kelly
Publicado em: 12/02/2008 - 11:16