Acceder a una base de datos de Access usando ADO, desde un formulario Web (.aspx)Publicado el 02/Ene/2004
|
|
Panorama |
En el ejemplo siguiente, se da por supuesto que existe un directorio llamado "datos" que está en el mismo directorio que la página ASPX, si cambias la localización de ese directorio, tendrás que cambiar el código de la conexión, más concretamente en el parámetro a Server.MapPath(...).
En el zip con el ejemplo, incluyo una pequeña base de datos que es la usada en el formulario Web.
Por tanto, si lo descomprimes, procura que la base de datos se quede dentro del directorio "datos".
De forma predeterminada se creará ese directorio.
¿Dónde descomprimir el fichero?
Dentro del directorio "localhost", por defecto es: C:\Inetpub\wwwroot
Para acceder a la página de prueba, tendrás que usar http://localhost/ejemploAccessADO.aspx
Por supuesto esto sólo será posible si tienes el Windows 2000/XP Profesional o un Windows Server que tenga instalado el IIS.En este ejemplo sólo muestro el código de Visual Basic, ya que al fin y al cabo es VBScript.
Nota: Este ejemplo realmente no utiliza ningún control ASP.NET, sólo código "puro y duro".
El link al código de ejemplo: ejemploAccess.zip (13.4KB)
El cual incluye también el ejemplo de acceso a ADO.NET (tanto para VB como para C#)
El código para VBSCRIPT.
<% @Page aspcompat=true Language = VB %> <html> <head> <title>Acceso a datos con compatibilidad ASP (COM)</title> </head> <BODY bgcolor="#FFFFFF" text="#000000"> <p><font face="Verdana" size="4">Prueba de acceso a base de datos Access con ADO desde ASP.NET</font> <hr noshade size="3"> <font face="Verdana" size="2"> <br> <% ' Variables usadas para crear los objetos, etc. Dim Rst, Cnn Dim sConn, sTip Dim sTitulo, sLink, sApartado, sDescripcion Dim s, i ' Crear los objetos Cnn = Server.CreateObject("ADODB.Connection") ' Crear la conexión a la base de datos sConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _ Server.MapPath("datos\elguille.mdb") & ";" Cnn.Open(sConn) ' Crear la cadena SQL s = "SELECT * FROM Titulos ORDER BY Apartado ASC" Rst = Cnn.Execute(s) On Error Resume Next Err.Clear ' Buscar desde el principio Rst.MoveFirst i = 0 Do While Not (Rst.BOF Or Rst.EOF) i = i + 1 With Rst ' Asignar a las variables el contenido del registro sTitulo = .Fields("Titulo").Value & "" sLink = .Fields("Link").Value & "" sApartado = .Fields("Apartado").Value & "" sDescripcion = .Fields("Descripcion").Value & "" ' Mostrar los datos hallados Response.Write(i & "- <a href='" & sLink & "'>" & _ sTitulo & "</a> <b>(" & _ sApartado & ")</b><br>" & sDescripcion & "<br>") End With ' ' Mostrar el siguiente registro Rst.MoveNext Loop Response.Write("<br>") Err.Clear If i = 0 Then Response.Write("<br><b>No se ha encontrado ningún registro que contenga") Response.Write(" lo que has especificado.</b><br>") Response.Write("Pulsa en este link para <b>") Response.Write("<a href='mostrarDatosTodo.aspx'>" Response.Write("Mostrar todos los registros</a></b>.<br>") End If ' Rst.Close Cnn.Close Rst = Nothing Cnn = Nothing ' %> <hr noshade size="3"> </font> </body> </html>