LLenar Gridcontrol DevExpress con SQL Server

 Llenar Gridcontrol DevExpress con consulta SQL Server


En el siguiente artículo aprenderemos a cargar la información de una tabla en SQL Server en un Grid utilizando el lenguaje de programación C#.

Para eso vamos hacer uso de las siguientes herramientas:

  • SQL Server Management Studio
  • Visual Studio 2019 Profesional(puede ser community)
  • Lenguaje de programación C#
  • DevExpress 


Para el ejemplo vamos hacer uso de una herramienta de terceros llamada DevExpress la cual es una herramienta  que nos permite mejorar la apariencia de nuestra aplicación(Windows Forms, ASP.Net, Xamarin, WPF).

Los primero que haremos es crear una consulta en SQL Server, para eso haremos uso de dos tablas relacionales una que contiene la información de productos y otra que almacena la información de número de lotes de productos.


Ahora vamos a crear un procedimiento almacenado que nos muestre el código del producto, el nombre y el número de lote de aquellos productos cuya categoría sea materia prima farmacéutica. El procedimiento almacenado que vamos a crear tendrá una sentencia Select y le aplicaremos un filtro ya que ambas tablas contienen demasiados registros almacenados. veamos l consulta a crear.

CREATE PROCEDURE spObtenerProductoLotes
 AS
  BEGIN
   SELECT SP.Codigo,SP.Descripcion AS Producto,SL.NumeroLote 
   FROM SivProductos AS SP 
   INNER JOIN SivProductoLotes AS SL ON SL.objProductoID = SP.ProductoID
   WHERE SP.Categoria = 'Materia Prima Farmaceutica'
   ORDER BY SP.Descripcion
   END
  GO

Si aún no sabes como crear un procedimiento almacenado, te podría interesar como crear un procedimiento almacenado en SQL Server.

Ahora bien  abrimos visual studio 2019 y seleccionamos la opción crear un proyecto.




Buscamos el tipo de proyecto Aplicación de windows Forms(.Net Framework) lo seleccionamos y damos en siguiente.


Por último establecemos un nombre en mi caso yo le puse a mi proyecto LlenarGridControl (ustedes puede poner cualquier nombre) y damos clic en Crear.


En la siguiente pantalla se nos va cargar la pantalla con un formulario Básico que trae por defecto Visual Studio. Ahora vamos agregar otro tipo de formulario que nos mejorará la apariencia. Para eso damos clic derecho sobre nuestro proyecto y damos clic en la opción add DevExpress Item.


La siguiente pantalla nos va cargar una serie de opciones seleccionamos la que dice Form y escribimos un nombre al nuevo formulario en mi caso le he puesto frmLlenarGridControl y damos clic en Add Item.


Después de haber agregado el nuevo formulario podremos ver que la apariencia es muy diferente al Form predeterminado que trae visual studio.

Ahora nos vamos ir al cuadro de herramienta y vamos a observar que hay otro tipo de botones y funcionalidades, bueno todas estas opciones son las que nos da DevExpress para mejorar la apariencia de nuestros formularios. Lo que haremos será buscar una opción que diga Data & Analytics. dentro de esa opción vamos a buscar un control llamado GridControl.


Hacemos clic sobre el control, lo arrastramos y lo soltamos sobre el formulario.



Luego damos clic derecho sobre el control y damos clic en Acoplar en contenedor primario, para que el gridcontrol se ajuste al formulario.

Ahora para el siguiente paso vamos a agregar una nueva clase a nuestro proyecto, para eso damos clic derecho sobre el proyecto y agregar clase, yo le pondré como nombre a mi clase conexion.



La clase conexion contendra la informacion que nos va a permitir conectarnos a nuestra base de datos, el codigo para realizar dicha conexión es la siguiente:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LlenarGridControl
{
    public class Conexion
    {
      //Cadena de Conexion
      public static string cn = "Data Source=SERVIDOR_SQL;Initial Catalog=NOMBRE_DATABASE;User ID=sa;Password=PASSWORD";
    }
}

Este codigo lo vamos a plasmar en la clase que hemos creado en nuestro proyecto.


 
En mi caso  a la cadena de conexión le paso el nombre de mi servidor SQL y como lo configure con autenticación SQL le paso el usuario "sa" y la contraseña creada para acceder a la base de datos.

Ahora vamos a crear otra clase en la cual vamos a definir un método que nos permita llenar el Gridcontrol a través de un datatable. la nueva clase la vamos a llamar LlenarGrid.

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LlenarGridControl
{
    public class LlenarGrid
    {
        
        public static DataTable ObtenerProductoLotes()
        {
            DataTable dtProducto = new DataTable("Producto");
            SqlConnection sqlCon = new SqlConnection();
            try
            {
                //1. Establecer la cadena de conexion
                sqlCon.ConnectionString = Conexion.cn;

                //2. Establecer el comando
                SqlCommand sqlCmd = new SqlCommand();
                sqlCmd.Connection = sqlCon;
                sqlCmd.CommandText = "spObtenerProductoLotes";
                sqlCmd.CommandType = CommandType.StoredProcedure;

                SqlDataAdapter sqlDat = new SqlDataAdapter(sqlCmd);
                sqlDat.Fill(dtProducto);//Llenamos el DataTable
            }
            catch (Exception ex)
            {
                dtProducto = null;
            }
            return dtProducto;
        }
    }
}

Luego de haber creado la clase con el método, nos vamos a nuestro formulario el cual contiene el Gridcontrol y damos doble clic sobre el formulario para que nos cargue la pestaña de codigo.


Ahora en el método load del formulario vamos a escribir el siguiente codigo.

//Llenamos el grid con los registros de la consulta
this.gridControl1.DataSource = LlenarGrid.ObtenerProductoLotes();

Por último para mostrar que los registros se cargar en el GridControl vamos a cambiar el formulario de arranque en el método Program.cs, por el de nuestros nuevo formulario que seria frmLlenarGridControl.


Luego de haber establecido el formulario como el principal procedemos a ejecutarlo para ver si cargan los registros.


En este artículo hemos visto cómo cargar los registros de una tabla en un gridcontrol mediante un procedimiento almacenado. El ejemplo ha sido muy sencillo en próximo artículo veremos ejemplos más complejos con archivos de configuración para poder editarlo.


Publicar un comentario

0 Comentarios