Enlazar un DropDownList a una base de datos SQL Server usando SqlDataSource.
Enlazar un DropDownList a una base de datos SQL Server usando SqlDataSource recibiendo parámetros de otro control.
Herramientas que posibilitan la información y la investigación.pdf
Asp.Net Data Binding Parte 1
1. ASP.NET Enlace a Datos – Parte 1 Ing. Juan Pablo Ibañez www.knowii.com
2. Llenar un DropDownList con datos de una tabla de una base de datos SQLServer www.knowii.com Supongamos que tenemos una tabla Provincia como se ve en la imagen de la izquierda. Nuestro objetivo es mostrar todas la provincias de la tabla en un DropDownList. Para lograr esto debemos agregar a nuestro formulario Web un DropDownList y configurarle un SQLDataSource que nos lo llene con los datos de la tabla. Cuando seleccionamos el DropDownList, vemos que aparece un triangulito negro en la esquina superior derecha. Hacemos clic en el triangulito y se nos mostrará un menú con las opciones que vemos en la imagen de la derecha. Hacemos clic en “Choose Data Source”
3. Llenar un DropDownList con datos de una tabla de una base de datos SQLServer www.knowii.com Al hacer clic en “Choose DataSource” se abre la ventana que ven a la izquierda. Aquí deben seleccionar la opción “New data source” para crear una nueva fuente de datos. Esta fuente de datos básicamente hará el SELECT a la base de datos.
4. Llenar un DropDownList con datos de una tabla de una base de datos SQLServer www.knowii.com Ahora debemos elegir el tipo de fuente de datos. Seleccionamos Database, que nos sirve para conectarmos a nuestro SQL Server u otro motor de base de datos. Al seleccionar Database, nos creará una fuenta de datos del tipo SqlDataSource. También aquí elegimos el ID de nuestro SqlDataSource.
5. Llenar un DropDownList con datos de una tabla de una base de datos SQLServer www.knowii.com Debemos indicarle a nuestro SqlDataSource cual es la cadena de conexión a la base de datos. Sí ya la tenemos creada en nuestro web.config, aparecerá en el combo. de lo contrario debemos seleccionar “New Connection”.
6. Llenar un DropDownList con datos de una tabla de una base de datos SQLServer www.knowii.com Luego de presionar la opción de “New Connection” se abre la ventana que se muestra, sirve para configurar la cadena de conexión. Debemos elegir el nombre del servidor, la manera de autenticarnos en el mismo. Existen 2 formas Windows Authentication y SQL Server Authentication. Luego debemos seleccionar la base de datos. Podemos usar el botón “Test Connection” para comprobar que todo esté configurado correctamente.
7. Llenar un DropDownList con datos de una tabla de una base de datos SQLServer www.knowii.com Guardamos la cadena de conexión en nuestro archivo de configuración (web.config). El wizard nos solicita que ingresemo un nombre para la cadena de conexión.
8. Llenar un DropDownList con datos de una tabla de una base de datos SQLServer www.knowii.com Ahora debemos seleccionar la tabla Provincia y armar el SELECT. En este caso debemos elegir Id y Nombre. Luego de elegir los campos del SELECT podemos ver como va a quedar el SELECT en la parte inferior de la pantalla.
9. Llenar un DropDownList con datos de una tabla de una base de datos SQLServer www.knowii.com Luego de apretar “Next”, el wizard nos permite testear la consulta creada. Para hacer esto presionamos la opción “Test Query”. Con esto termina la configuración de nuestro SqlDataSoruce.
10. Llenar un DropDownList con datos de una tabla de una base de datos SQLServer www.knowii.com Luego de apretar “Next”, el wizard nos permite testear la consulta creada. Para hacer esto presionamos la opción “Test Query”. Con esto termina la configuración de nuestro SqlDataSoruce.
11. Llenar un DropDownList con datos de una tabla de una base de datos SQLServer www.knowii.com En esta última pantalla lo que configuramos es el DropDownList. Por lo cual le indicamos cual es el SqlDataSource que debe utilizar. También cual es el nombre del campo de tabla que usaremos como Id. Y por último cual es el nombre del campo que utilizaremos para mostrar. Por ejemplo, Id, serían los valores 1, 2, 3, … y Nombre serían Buenos Aires, Córdoba, Santa Fé, …
12. Llenar un DropDownList con datos de una tabla de una base de datos SQLServer www.knowii.com Resultado, nuestro DropDownList cargado con valores de la base de datos. Ahora, ¿qué significaron todos los clics y configuraciones que hicimos? Código en nuestro ASPX y la cadena de conexión en nuestro
13. Llenar un DropDownList con datos de una tabla de una base de datos SQLServer pero que los valores dependan del valor seleccionado en otro DropDownList www.knowii.com Cuando cambia el índice del DropDownList de provincias se debe hacer un PostBack e ir al servidor y cargar el DropDownList de ciudades con las que pertenezcan a la provincia seleccionada. Por lo que el DropDownList de provincias tiene que tener la propiedad AutoPostBack=“true” y configurado su SqlDataSource como se vió anteriormente.
14. Llenar un DropDownList con datos de una tabla de una base de datos SQLServer pero que los valores dependan del valor seleccionado en otro DropDownList www.knowii.com Para que el DropDownList de ciudades cargue datos desde una tabla de la base de datos debemos configurarle un SqlDataSource. Esto lo realizaremos exactamente igual al anterior pero con una diferencia, el SELECT que armemos debe tener un WHERE para poder filtrar las ciudades de una determinada provincia. La imagen muestra la tabla Ciudad. Tiene una columna ProvinciaId que indica a qué provincia pertenece cada ciudad. Nuestro SELECT debería ser entonces: SELECT [Id], [Nombre] FROM [Ciudad] WHERE ([ProvinciaId] = @ProvinciaId)
15. Llenar un DropDownList con datos de una tabla de una base de datos SQLServer pero que los valores dependan del valor seleccionado en otro DropDownList www.knowii.com Como sabemos, nuestro SELECT debe retornar las claves primarias y los valores a mostrar para llenar el DropDownList, en nuestro caso, Id y Nombre de la tabla Ciudad. Pero, además, debemos armar el WHERE, por lo cual debemos elegir la opción “WHERE”.
16. Llenar un DropDownList con datos de una tabla de una base de datos SQLServer pero que los valores dependan del valor seleccionado en otro DropDownList www.knowii.com Esta pantalla nos permite elegir la columna que queremos utilizar en el WHERE, en nuestro caso, ProvinciaId. Luego debemos seleccionar de donde tomaremos el valor que queremos usar en el WHERE, en nuestro caso lo queremos tomar del DropDownList de provincias, por lo cual elegimos para la opción “Source”, el valor Control. Luego elegimos el ID del control y el valor por defecto y presionamos “Add”.
17. Llenar un DropDownList con datos de una tabla de una base de datos SQLServer pero que los valores dependan del valor seleccionado en otro DropDownList www.knowii.com Al presionar “Add” nuestra clausula se agrega al listado de clausulas. De ser necesario podemos agregar mas clausulas, en nuestro caso no es necesario por lo cual presionamos “OK”.
18. Llenar un DropDownList con datos de una tabla de una base de datos SQLServer pero que los valores dependan del valor seleccionado en otro DropDownList www.knowii.com Luego de haber configurado el WHERE vemos que nuestro SELECT queda conformado como necesitamos.
19. Llenar un DropDownList con datos de una tabla de una base de datos SQLServer pero que los valores dependan del valor seleccionado en otro DropDownList www.knowii.com Podemos testear nuestra consulta como lo hicimos anteriormente presionando “Test Query”.
20. Llenar un DropDownList con datos de una tabla de una base de datos SQLServer pero que los valores dependan del valor seleccionado en otro DropDownList www.knowii.com Pero a diferencia de la vez anterior, ahora nos pide que le pasemos el valor al parámetro, ya que como no estamos corriendo la aplicación, el SqlDataSource no puede tomarlo de DropDownList de provincias.
21. Llenar un DropDownList con datos de una tabla de una base de datos SQLServer pero que los valores dependan del valor seleccionado en otro DropDownList www.knowii.com El resultado de la consulta devuelve lo que esperamos, solo las ciudades que pertenecen a la provincia cuyo Id es igual a 1 (el valor que le pasamos al parámetro).
22. Llenar un DropDownList con datos de una tabla de una base de datos SQLServer pero que los valores dependan del valor seleccionado en otro DropDownList www.knowii.com Ahora seteamos los parámetros al DropDownList, de la misma manera que lo hicimos anteriormente.
23. Llenar un DropDownList con datos de una tabla de una base de datos SQLServer pero que los valores dependan del valor seleccionado en otro DropDownList www.knowii.com Veamos ahora, cual es el código generado después de tantos clics: Lo importante es ver que ahora tenemos un SELECT con un WHERE con un parámetro y ese parámetro se agregó a la colección SelectParámeters del SqlDataSource. El parámetro es del tipo ControlParámeter y tiene seteadas las propiedades para asociarlo al DropDownList de provincias.