Llenar LookUpEdit en c# con datos

 Cómo llenar LookUpEdit en C#

En este artículo estaremos aprendiendo como llenar un Lookupedit en C#. Un LookUpEdit es un control DevExpress mejorado que nos otorga muchas más funcionalidades que el ComboBox Tradicional del cuadro de herramientas de visual Studio.

Para llenar un LookUpEdit o un ComboBox podemos hacerlos de diferentes maneras. La manera más frecuente que todo solemos buscar es como llenarlo (ComboBox o LookUpEdit) desde un origen de datos(devexpress lookupedit datasource), es decir acceder a los datos almacenados en una tabla dentro de una base de datos. Pero también podemos llenar un LookUpEdit (ComboBox) a partir de un diccionario de datos o crear un método simple que nos permita cargar los datos que necesitamos mostrar.


Llenar un LookUpEdit a partir de un diccionario de datos

Un diccionario en C# es una colección de datos los cuales los podemos guardar de la forma clave-valor. Mediante el uso de un diccionario podemos crear una colección de datos y mostrarla en un LookUpEdit.

Para el primer ejemplo vamos a crear una colección de datos que nos permita almacenar los datos de una serie de videojuegos y su respectiva fecha de lanzamiento, dicha colección de datos la estaremos mostrando en un LookUpEdit. Veamos el código a crear:

Dictionary ldict = new Dictionary();
ldict.Add("God Of War Ragnarok", "9 Noviembre 2022");
ldict.Add("Gran Turismo 7", " 4 Marzo 2022");
ldict.Add("Horizon Forbidden West", "18 Febrero 2022");
ldict.Add("Elden Ring", " 25 Febrero 2022");
ldict.Add("Gotham Knights", "21 Octubre 2022");
ldict.Add("Scorn", "21 Octubre 2022");
lookUpEdit1.Properties.DataSource = ldict.ToList();
lookUpEdit1.Properties.ValueMember = "Value";
lookUpEdit1.Properties.DisplayMember = "Key";

Ahora nos vamos ir a Visual Studio vamos crear un proyecto de tipo Windows Forms, para mi ejemplo voy a llamar al proyecto Llenar ComboBox. Al formulario que se nos cargue en pantalla vamos agregar 3 controles LookUpEdit del cuadro de herramientas DevExpress y por último a cada botón vamos a especificarle un nombre.



Para el primer LookUpEdit vamos a denominarlo Videojuegos , el segundo lo nombraremos Moneda y el último LookUpEdit nos va cargar información de Países. El diseño quedaría de la siguiente manera:


Ahora hacemos doble clic sobre el formulario para que se nos cargue el método principal y acá vamos a escribir el código del diccionario de datos con el cual vamos a llenar el primer LookUpEdit.


Depuremos la aplicación(Apretar la tecla F5) en pantalla y verifiquemos si el control carga los registros almacenados en el diccionario de datos.


Al ejecutar la aplicación podemos desplegar la el primer LookUpEdit y podemos ver que se nos carga la información de los videos juegos almacenado en el diccionario de datos.


Llenar un LookUpEdit a partir de una matriz de objetos

Para el siguiente ejemplo vamos a llenar el segundo LookUpEdit a partir de una matriz de objeto que nos muestre los registros de monedas de diferentes nacionalidades. Veamos el código:
var Moneda = new[]
{
 new{moneda="Cordoba"},
 new{moneda="Dolar"},
 new{moneda="Euro" },
 new{moneda="Rublo" },
 new{moneda="Yuan" },
 new{moneda="Libra Esterlina" }
 };
lookUpEdit2.Properties.DataSource = Moneda;
lookUpEdit2.Properties.DisplayMember = "moneda"; 

En el siguiente código declaramos una variable local como VAR para no especificar un tipo de datos exacto y creamos un arreglo que contenga la información de las diferentes monedas de un país y por último lo mostramos en el segundo LookUpdit veamos en Visual Studio el código. 


Depuremos la aplicación para verificar que se cargue la información de las monedas.


Podemos observar que se carga la información de las diferentes monedas.


Llenar un LookUpEdit desde una tabla en SQL Server

También podemos llenar un LookUpEdit Accediendo a los registros almacenados e una tabla dentro de una base de datos. Para nuestro ejemplo vamos a crear un procedimiento almacenado que nos consulte la información de los países almacenados en la tabla StbValorCatalogo(Para su caso puede ajustar el ejemplo a su necesidad). Vamos a escribir el siguiente procedimiento almacenado.
 create procedure spGetValorPais
 as
 select sv.ID,sv.Descripcion  from StbValorCatalogos as sv 
 where objCatalogoID =1002

El siguiente procedimiento almacenado nos va a consultar la información de los países almacenados en una tabla llamada StbValorCatalogo. Para obtener los países debemos mediante un clausula WHERE especificar que nos muestre solamente la información de los países.


Ahora en visual studio vamos a crear una nueva clase la cual llamaré LlenarCombobox. Esta clase va contener un método con un DataTable el cual nos va a llenar el LookUpEdit con la información de los países.

 public class LlenarCombobox
    {
        #region metodo Select Pais
        //Creamos el metodo para listar los paises
        public static DataTable GetPais()
        {
            DataTable dtp = new DataTable("Refrescar");
            //accediendo al archivo de configuracion que contiene la DB
            using (SqlConnection sqlCon = new SqlConnection(ConfigurationManager.AppSettings["Default"]))
                try
                {
                    //abrimos la conexion
                    sqlCon.Open();
                    SqlCommand sqlCmd = new SqlCommand();
                    sqlCmd.Connection = sqlCon;
                    sqlCmd.CommandText = "spGetValorPais";
                    sqlCmd.CommandType = CommandType.StoredProcedure;

                    //No hay parametros para declara
                    //Creamos el DataAdapter para llenar el Datatable
                    SqlDataAdapter sqlDat = new SqlDataAdapter(sqlCmd);
                    sqlDat.Fill(dtp);
                    sqlCon.Close();
                }
                catch (Exception)
                {
                    dtp = null;
                }
            return dtp;
            #endregion
        }
    } 

Ahora el siguiente código lo vamos a plasmar en la nueva clase creada en el proyecto.


Ahora en el método principal del formulario Load vamos a crear el llamado al método LlenarCombobox que nos cargue la información en el LookUpEdit países.
//LLENAR LOOKUPEDIT DESDE UNA BASE DE DATOS
this.lookUpEdit3.Properties.DataSource = LlenarCombobox.GetPais();
this.lookUpEdit3.Properties.DisplayMember = "Descripcion";
this.lookUpEdit3.Properties.ValueMember = "ID";
}

El siguiente código vamos a escribirlo en el método principal donde hemos llenado los anteriores LookUpEdit.


Por ultimo vamos a ejecutar la aplicación para mostrar la información de los países.


Como hemos podido Observar, podemos llenar un LookUpEdit de diferentes formas según sea la necesidad. Si no poseen este tipo de controles y usan los básicos de visual studio cada una de las formas vistas en este artículo las pueden acoplar al control básico ComboBox de visual Studio.

Por acá les dejo el Link de GitHub donde puede bajar el ejemplo LlenarLookUpedit


Publicar un comentario

0 Comentarios