CÓMO: Recuperar y mostrar registros de una base de datos de Access mediante ASP.NET, ADO.NET y Visual Basic .NET
 
Por: Juan Francisco Berrocal
Nota Importante: Caas Producciones no se hace responsable de cualquier uso indebido de este programa o código 
Publicado el: 07/08/06

 
Resumen


En este artículo se muestra cómo recuperar datos de una base de datos de Microsoft Access y presentar datos al usuario mediante programación. En el ejemplo de este artículo se utilizan las clases OleDbConnection, OleDbCommand y OleDbDataReader, que forman parte de ADO.NET y Microsoft .NET Framework.

 

Requisitos


Microsoft Windows 2000 Professional, Windows 2000 Server o Windows 2000 Advanced Server

Servicios de Microsoft Internet Information Server (IIS) versión 5.0

Microsoft .NET Framework

Base de datos Neptuno de Microsoft Access

Volver al principio

Crear una página ASPX


En el código de ejemplo de esta sección se crea una cadena que contendrá los datos recuperados de la base de datos junto con el código adicional del Lenguaje de marcado de hipertexto (HTML) para producir una representación muy sencilla del resultado. Tenga en cuenta que ASP.NET ofrece diversos controles que puede utilizar para conseguir un procesamiento sencillo y mejorado de los datos.

Además, el código que crea la tabla HTML incluye alguna concatenación de cadenas. Aunque puede utilizar la clase StringBuilder para conseguir este resultado con mayor eficiencia, el código de este ejemplo no utiliza StringBuilder por reducir el número de componentes de .NET Framework que introduce el código. Para obtener más información acerca de la clase StringBuilder, consulte la siguiente documentación del Kit de desarrollo de software (SDK) de .NET Framework:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemTextStringBuilderClassTopic.asp

Para recuperar y mostrar registros de una base de datos de Access, siga estos pasos:

1. Agregue un nuevo Web Form llamado DataSample.aspx al proyecto de aplicación Web ASP.NET de Visual Basic en Visual Studio .NET de la manera siguiente:

a. En el Explorador de soluciones, haga clic con el botón secundario del mouse (ratón) en el nodo del proyecto, haga clic en Agregar y, a continuación, haga clic en Agregar Web Forms.

b. En el cuadro de texto Nombre, escriba DataSample.aspx y, después, haga clic en Abrir.

c. Haga clic en la ficha HTML.

2. Elimine el código predeterminado que Visual Studio .NET agrega a la página.

3. Resalte el código siguiente, haga clic con el botón secundario del mouse (ratón) en el mismo y, a continuación, haga clic en Copiar. En Visual Studio .NET, haga clic en Pegar como HTML en el menú Edición para pegar el código en DataSample.aspx:

4. <%@Import Namespace="System.Data"%>

5. <%@Import Namespace="System.Data.OleDb"%>

 6. <script language=vb runat=server>

7. Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)

9. Dim myConnection As OleDbConnection

10. Dim myCommand As OleDbCommand

11. Dim myReader As OleDbDataReader

13. 'Utilizar una variable para almacenar la cadena de conexión ConnectionString.

14. Dim myConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _

15. "Data Source=C:\File Databases\NWIND.MDB"

17. 'Crear un objeto OleDbConnection18. 'y pasar la ConnectionString al constructor.

19. myConnection = New OleDbConnection(myConnectionString)

21. 'Abrir la conexión.

22. myConnection.Open()

24. 'Utilizar una variable para almacenar la instrucción SQL.

25. Dim mySelect As String = "SELECT CustomerID, ContactName, Phone FROM Customers"

27. 'Crear un objeto OleDbCommand.

28. 'Observe que pasamos la instrucción SQL y el objeto OleDbConnection.

29. myCommand = New OleDbCommand(mySelect, myConnection)

31. 'Enviar el CommandText a la conexión y crear un OleDbDataReader.

32. 'Nota: el OleDbDataReader es de sólo avance.

33. myReader = myCommand.ExecuteReader()

35. 'Utilizar una variable para almacenar la información devuelta por el OleDbDataReader

36. 'y el código de la tabla HTML que utilizará para presentar el resultado.

37. Dim TableBuilder = "<table border=1 cellspacing=1>"

39. 'Crear una fila de tabla inicial que contiene los nombres de columna.

40. TableBuilder += "<tr><td><B>Customer ID</B></td>" & _

41. "<td><B>Contact Name</B></td>" & _

42. "<td><B>Phone</B></td></tr>"

44. 'Recorrer los registros de uno en uno.

45. While (myReader.Read())

46. 'Concatenar los valores del DataReader para crear cada fila de la tabla.

47. TableBuilder += "<tr><td>" & myReader("CustomerID") _

48. & "</td><td>" + myReader("ContactName") _

49. & "</td><td>" & myReader("Phone") & "</td></tr>"

50. End While

52. TableBuilder += "</table>"

54. 'Escribir la cadena final.

55. Response.Write(TableBuilder)

57. 'Cerrar la conexión y el DataReader.

58. myConnection.Close()

59. myReader.Close()

60. End Sub

61. </script>

62. Modifique la variable myConnectionString al principio del código para que señale correctamente a la base de datos Neptuno.

63. En el menú Archivo, haga clic en Guardar DataSample.aspx para guardar los cambios realizados en el archivo.

64. En el menú Generar, haga clic en Generar solución para generar el proyecto.

65. En el Explorador de soluciones del Entorno de desarrollo integrado (IDE) de Visual Studio .NET, haga clic con el botón secundario del mouse (ratón) en DataSample.aspx y, después, haga clic en Ver en el explorador. La página aparecerá en el explorador, junto con los datos de la base de datos Neptuno.


 

Solucionar problemas


Es posible que aparezca el mensaje de error siguiente (u otro similar) en tiempo de ejecución:

El motor de base de datos Microsoft Jet no puede abrir el archivo 'C:\File Databases\NWIND.MDB'. Otro usuario lo ha abierto de manera exclusiva o se necesita permiso para ver sus datos.

Normalmente este error se produce porque no tiene los permisos adecuados de acceso al archivo de base de datos (.mdb). Si está utilizando autenticación anónima, la cuenta Anónima (que suele ser IUSR_ NombreDeEquipo ) debe modificar los permisos para el archivo .mdb y la carpeta donde reside el archivo. Si está utilizando autenticación básica o de Windows integrada, debe configurar en consecuencia los permisos de las cuentas relacionadas para dichos métodos de autenticación en la carpeta y el archivo .mdb.

Asegúrese de que los componentes del motor de base de datos Microsoft Jet están instalados. A partir de MDAC 2.6 no se incluyen los componentes de Jet. Sin embargo, puede descargar una versión redistribuible del Service Pack más reciente de Jet 4.0 si es necesario.