<asp:Origen de datos de acceso> ID="NombreMiFuente" Runat="servidor" DataFile="MiNombreMDB.mdb" SelectCommand="SELECCIONE MiCampo1, MiCampo2 DE MiTabla"> </asp:AccessDataSource> |
<html> <cabeza> <título>TIO ch02-1 Mostrar datos MDB</título> <cabeza> <cuerpo> <h3>ch02 TIO 2 Demostración de conexión a una fuente MDB </h3> <cuerpo> </html> |
<%@ idioma de la página="VB" %> <html> <head><title>ch02 TIO 2 Mostrar datos MDB</title></head> <cuerpo> <h3>ch02 TIO 2 Demostración de conexión a una fuente MDB </h3> <formulario runat="servidor"> <asp:accessdatasource id="NorthwindProductsAccDataSource" runat="servidor" selectcommand="Seleccionar * De productos" archivo de datos="~/App_Data/Northwind.mdb"> </asp:accesofuentededatos> <asp:gridview id="NorthwindProductsGridView" runat="servidor" datasourceid="NorthwindProductsAccDataSource"> </asp:gridview> </formulario></cuerpo></html> |
<asp:accessdatasource id="NorthwindProductsAccDataSource" runat="servidor" selectcommand="Selcet * De [Ventas por categoría] " Archivo de datos="~/App_Data/Northwind.mdb"> </asp:accesofuentededatos> |
(14) Abra el navegador y vea la página.
Nota de ejemplo n.º 2: conectarse a MDB y mostrar datos con GridView
Tienes dos controles en la página. El primero, AccessDataSource, realiza todo el trabajo de conexión a los objetos ADO.NET que se conectan al motor JET que interactúa con el archivo MDB. El segundo es GridView, que se utiliza para obtener datos y convertir su formato al formato HTML que se puede mostrar en la página. Tenga en cuenta que es muy importante asignar a cada control un nombre significativo (ID). Luego debe asegurarse de que el control vinculado a datos (GridView) use su propiedad DataSourceID para hacer referencia al ID de AccessDataSource para poder usar AccessDataSource como fuente de datos.
Mostrar datos de una consulta no es muy difícil; en Access puede utilizar nombres de consultas en lugar de nombres de tablas. Aquí hay dos instrucciones. Primero, si hay espacios en el nombre de una tabla o consulta, el nombre completo debe estar entre corchetes. En segundo lugar, las consultas que requieren la entrada del usuario (por ejemplo, "ventas en un año determinado" requieren saber qué año) implican técnicas que están más allá del alcance de este libro.
Luego de completar los pasos anteriores, podrá ver los datos obtenidos del control AccessDataSource que se muestra en la página. Los capítulos posteriores cubrirán GridView en detalle, pero este capítulo continuará enfocándose en los controles de fuentes de datos.
Seleccionar variables en declaraciones
Al crear una fuente de datos en VWD, el asistente le pedirá que especifique las columnas que deben mostrarse o que cree una declaración SQL personalizada. En la sección "Pruébelo" anterior, simplemente seleccionó algunas columnas. Las sentencias SQL más complejas se pueden especificar de varias maneras diferentes:
● Usar cuadros de diálogo interactivos
● Ingresar declaraciones SQL personalizadas en el asistente AccessDataSource (llamado por la conveniente tarea Configurar fuente de datos en el control)
● Ingresar declaraciones en la cuadrícula de propiedades.
● Ingresar declaraciones directamente en el marcado de la vista Fuente.
Seleccionar columnas en el asistente de Access DataSource es una técnica preferida para consultas simples que devuelven una o más columnas de una tabla separada porque reduce los errores tipográficos y de sintaxis (consulte la Figura 2-3). En este asistente, puede seleccionar el nombre de la tabla o consulta en la lista desplegable Nombre. Luego puede seleccionar las columnas requeridas en la tabla o consulta seleccionando todas las columnas (*) o cualquier grupo de columnas. Si hace clic en el botón Ordenar por, puede ordenar por cualquier columna de la fuente de datos. Si hay una restricción en la primera columna, se utilizará el campo seleccionado en Luego por. Al seleccionar opciones del asistente, tenga en cuenta que la sintaxis SQL real para SelectCommand también se muestra en un cuadro de texto de solo lectura.
Figura 2-3
Puede utilizar el botón WHERE en el asistente para crear una declaración SQL con parámetros. Esta parte se presentará en el Capítulo 9. Omitiremos esta selección por ahora, pero es importante que antes de la implementación utilice estos parámetros que se analizarán más adelante en este libro. En un sitio implementado, evite conectar directamente la entrada del usuario con declaraciones SQL. Ignorar los problemas de parámetros expondrá su sitio a ataques de inyección SQL. Esta técnica de ataque utiliza caracteres falsos de la entrada del usuario para invalidar la declaración SQL original y luego la reemplaza con una declaración destructiva. Puede utilizar colecciones de parámetros para enviar entradas del usuario a colecciones de parámetros de ADO.NET, que pueden utilizar la funcionalidad de las colecciones para reducir los problemas de inyección de SQL.
Aunque el asistente Configurar fuente de datos tiene muchas opciones para ayudar a crear rápidamente declaraciones SQL, a veces aún necesita ingresar (o modificar) directamente la declaración SQL en el SelectCommand marcado. El asistente AccessDataSource permite estas operaciones. En la página del asistente para seleccionar tablas, consultas y columnas, puede seleccionar el botón de opción "Especificar una instrucción SQL personalizada o un procedimiento almacenado". Después de seleccionar esta opción en la página del asistente, haga clic en el botón Siguiente para ingresar a otra página donde puede ingresar directamente declaraciones personalizadas en el área de texto. También puede utilizar Visual Studio QueryBuilder para crear visualmente declaraciones personalizadas mediante herramientas muy similares a Access QueryBuilder.
Si no desea utilizar el asistente, puede optar por ingresar una declaración SQL personalizada en la cuadrícula de propiedades del control AccessDataSource, o puede cambiar a la vista Fuente e ingresar la declaración en la propiedad SelectCommand de la etiqueta del control AccessDataSource.
Hay muchos libros sobre SQL (el mismo tipo que este es Beginning SQL Programming , ISBN 1-861001-80-0), y este libro proporciona una breve introducción en el apéndice. Si planea aprender la sintaxis SQL, puede comenzar aprendiendo los comandos para devolver parte de un registro (TOP y DISTINCT), la sintaxis para cambiar el nombre de un campo (AS) y la técnica para devolver campos de dos tablas relacionadas (JOIN). . Los siguientes ejercicios explorarán algunas variables en declaraciones SQL.
Pruebe #3: Cambiar la instrucción Select en AccessDataSource En este ejercicio, mostrará columnas específicas y registros específicos de la tabla Productos de Northwind. También se creará una página para mostrar los datos obtenidos de la consulta. Tenga en cuenta que en este ejercicio, las reglas de selección ya están en el código fuente. Actualmente, no existe ninguna opción de entrada del usuario.
(1) Cree un archivo llamado ch02_TIO_3_AlternateSelect-Commands.aspx en C:WebsitesBegAspNet2Dbch02.
(2) Agregue un control AccessDataSource con Northwind como ID y configure el MDB en App_DataNorthwind.mdb. En una serie de cuadros de diálogo, configure el comando Seleccionar para recuperar todos los campos de la tabla Productos ("nombre"=Productos). Eche un vistazo a la vista Fuente y observe la declaración que creó, como se muestra a continuación:
SELECCIONAR * DE Productos |
<%@ idioma de la página="VB" %> <html> <cabeza runat="servidor"> <título>ch02 TIO 3 Conimandos de selección alternativa</título> </cabeza> <cuerpo> <h3>ch02 TIO 3 Monedas de selección alternativas</h3> <formulario runat="servidor"> <asp:accessdatasource id="NorthwindAccDataSource" runat="servidor" selectcommand="SELECCIONAR * DE Productos" archivo de datos=" ~/App_Data/Northwind.mdb" > </asp:accesofuentededatos> <asp:gridview id="GridViewl" runat="servidor" datasourceid="NorthwindAccDataSource"> </asp:gridview> </formulario> </cuerpo> </html> |
SELECCIONAR * DE [Productos] DONDE (CategroyID=3) |
<asp:accessdatasource id="NorthwindAccDataSource" runat="servidor" selectcommand="SELECCIONAR * DE [Productos] DONDE (ID de categoría = 3) " Archivo de datos="~App_Data/Northwind.mdb"> </asp:accesofuentededatos> |
SELECCIONE * DE Productos DONDE ProductID = 12 SELECCIONE * DE Productos DONDE NombreProducto = 'Salsa de arándanos Northwoods' SELECCIONE * DE Productos DONDE ProductID <11 SELECCIONE * DE Productos DONDE ProductID <11 ORDEN POR ProductName Ascendente SELECCIONE * DE Productos DONDE ID de proveedor = 6 O ID de proveedor = 8 SELECCIONE * DE Productos DONDE ID de proveedor = 24 Y Precio unitario > 10 |
Variables en la ubicación del archivo MDB
Los archivos MDB se almacenan en varias ubicaciones físicas del disco duro: la misma carpeta que la página web, una subcarpeta debajo de la página web u otras carpetas de la máquina, etc. En Visual Web Developer, estos archivos se pueden explorar con frecuencia en el diseñador y se ha ingresado la ruta correcta al archivo MDB. Sin embargo, si planea ingresar su propio código, deberá seguir la sintaxis descrita en esta sección.
La propiedad DataFile del control AccessDataSource contiene una ruta de acceso a la página que puede estar completamente calificada (por ejemplo, comenzando con una letra de unidad) o especificada en relación con la ubicación de la página que contiene AccessDataSource. Las rutas también pueden ser relativas a la aplicación, es decir, utilizar la sintaxis de URL para hacer referencia a la ruta. Esta sintaxis reemplaza el símbolo (~) con el directorio raíz de la aplicación, por ejemplo: ~App_Dataproduces.mdb. El uso de rutas relativas a la aplicación facilita mover páginas de una ubicación a otra sin romper las referencias a la base de datos, por lo que se recomienda utilizar rutas relativas a la aplicación siempre que sea posible.
Primero, veamos la sintaxis de una ruta completa, que contiene la ruta completa a un archivo MDB, comenzando con la raíz de la unidad de la computadora donde se encuentra el archivo:
<asp:acceso a fuente de datos. archivo de datos = "C:Sitios webAplicación webApp_DataMyMdb.mdb"> |
<asp:accesofuentededatos. |
<asp:accessdatasource .archivo de datos="MiHijaCarpeta/MiMdb.mdb"> |
<asp:accesofuentededatos. |
<asp:acceso a fuente de datos . |