En este nuevo artículo os voy a mostrar por pasos cómo crear un campo SELECT en .NET.
Para poder crear un campo de tipo SELECT (más conocido como Dropdownlist – DDL) en .NET, tenemos que añadir en nuestro fichero aspx la declaración del DDL. Para ello vamos a mostrar un listado de paises, con el valor del código ISO.
Declaración del campo DropdownList
<asp:DropDownList id="DDLPaises" AutoPostBack="False" runat="server"></asp:DropDownList>
Añadir opciones al dropdownlist de forma manual
Lo único que tendremos que hacer para rellenar el dropdownlist, es situarnos donde hemos declarado el campo en nuestro fichero aspx:
<asp:dropdownlist id="DDLPaises" autopostback="False" runat="server">
<asp:listitem value="es">España</asp:listitem>
<asp:listitem value="mx">México</asp:listitem>
<asp:listitem value="co">Colombia</asp:listitem>
</asp:dropdownlist>
Utilizaremos la etiqueta <asp:listitem>
para poder añadir opciones a nuestro Dropdownlist en .NET.
Añadir opciones al dropdownlist de forma dinámica
Lo primero que tenemos que indicar en nuestro fichero aspx, es la declaración del campo vacío:
<asp:DropDownList id="DDLPaises" AutoPostBack="False" runat="server"></asp:DropDownList>
VB.NET
Para poder conectarnos a una base de datos en VB.NET, necesitamos las siguientes dependencias:
Imports System.Data.IDbDataAdapter
Imports System.Data.Dataset
Imports System.Data.SqlClient
Definimos la conexión de nuestra base de datos con el nombre del servidor, nombre de la base de datos, el usuario y la contraseña que tenemos definido en SQL Server:
Dim datosbbdd = "server=servidor-lacodigoteca;database=tienda;integrated security = true"
Ahora definimos la conexión a la base de datos, añadimos la consulta con los datos que vamos a mostrar y finalmente vamos a almacenar todos los datos en un dataset:
Dim conexionbbdd As System.Data.IDbConnection = New System.Data.SqlClient.SqlConnection(datosbbdd)
Dim consultabbdd As String = "SELECT codigo,nombre FROM paises ORDER BY nombre"
Dim dbCommand As System.Data.SqlClient.SqlCommand = New System.Data.SqlClient.SqlCommand(consultabbdd)
dbCommand.Connection = conexionbbdd
Dim dataAdapter As System.Data.IDbDataAdapter = New System.Data.SqlClient.SqlDataAdapter
dataAdapter.SelectCommand = dbCommand
Dim dataSet As System.Data.DataSet = New System.Data.DataSet
dataAdapter.Fill(dataSet)
dbConnection.Close()
Por último paso, vamos a iterar(acceder por cada registro) todos los datos del dataset y vamos creando las opciones. En DataTextField y en DataValueField tenemos que indicar los campos de la consulta SQL.
DDLPaises.DataSource = dataSet
DDLPaises.DataTextField = "nombre"
DDLPaises.DataValueField = "codigo"
DDLPaises.DataBind()
Si queremos mostrar una opción por defecto, tendremos que indicar lo siguiente:
DDLPaises.Items.Insert(0, New ListItem("Selecciona un país", 0))
Y ya tendríamos nuestro Dropdownlist en .NET dinámico con datos de nuestra BBDD.
C# (C Sharp)
Para poder conectarnos a una base de datos en C# (C Sharp), necesitamos las siguientes dependencias:
using System.Data.IDataAdapter;
using System.Data.Dataset;
using System.Data.SqlClient;
Definimos la conexión de nuestra base de datos con el nombre del servidor, nombre de la base de datos, el usuario y la contraseña que tenemos definido en SQL Server:
SqlConnectionStringBuilder datosbbdd = new SqlConnectionStringBuilder{
DataSource = "servidor-lacodigoteca",
UserID = "usuario",
Password = "contrasena",
InitialCatalog = "tienda"
};
Ahora definimos la conexión a la base de datos, añadimos la consulta con los datos que vamos a mostrar y finalmente vamos a almacenar todos los datos en un dataset:
using (SqlConnection connection = new SqlConnection(datosbbdd.ConnectionString)){
String consultabbdd = "SELECT codigo,nombre FROM paises ORDER BY nombre";
using(sqlCommand cmd = new SqlCommand(consultabbdd,connection){
connection.Open();
SqlDataAdapter adapter = new SqlDataAdapter(consultabbdd, connection);
DataSet listPaises = new DataSet();
adapter.Fill(listPaises);
}
}
connection.Close();
Ya tenemos realizada la conexión a la BBDD y los datos almacenados en el dataset. Ahora tenemos que asignar esos datos a las opciones del Dropdownlist:
DDLPaises.DataSource = listpaises;
DDLPaises.DataTextField = "nombre";
DDLPaises.DataValueField = "codigo";
DDLPaises.DataBind();
Si queremos mostrar una opción por defecto, tendremos que indicar lo siguiente:
DDLPaises.Items.Insert(0, New ListItem("Selecciona un país", 0));
Y así es como quedaría el código completo:
using (SqlConnection connection = new SqlConnection(datosbbdd.ConnectionString)){
String consultabbdd = "SELECT codigo,nombre FROM paises ORDER BY nombre";
using(sqlCommand cmd = new SqlCommand(consultabbdd,connection){
connection.Open();
SqlDataAdapter adapter = new SqlDataAdapter(consultabbdd, connection);
DataSet listPaises = new DataSet();
adapter.Fill(listPaises);
DDLPaises.DataSource = listpaises;
DDLPaises.DataTextField = "nombre";
DDLPaises.DataValueField = "codigo";
DDLPaises.DataBind();
connection.Close();
}
}
¿Te ha resultado útil el artículo?
Te recomiendo que realices una visita por la sección de .NET o si necesitas consultas más complejas, pásate por la sección de SQL.
Espero que te sirva de ayuda. Si se puede mejorar el código, por favor, escríbenos un comentario y lo adaptamos para que tengamos los mejores ejemplos 😉
1 comentario en “Crear campo Dropdownlist en .NET”
Excelente, muchas gracias.