[C# - Linq] Buscar en Datagridview y ordenar resultados con LINQ utilizando lista generica

Introducción

En este articulo les voy a mostrar como buscar en una datagridview y ordenar los resultados con LINQ. Utilizaremos para buscar la extensión Contains y para ordenar los resultados en forma ascendente o descendente con orderby.

Interfaz Gráfica

La interfaz gráfica es la siguiente:



Procedimiento

Vamos a utilizar la base de datos AdventureWorks2012, en caso de no tener dicha base de datos, podes ver este link  para descargarla e instalarla.

Luego de tener nuestra base de datos preparada, vamos a utilizar la tabla Person.Person y de dicha tabla vamos a usar las columnas BusinessEntityID, FirstName, MiddleName y LastName.

Luego de crear nuestro proyecto, agregamos una clase llamada personEn que va a contener las propiedades que van a corresponder a cada columna

    class personEn
    {
        public int codEn { get; set; }
        public string firstName { get; set; }
        public string middleName { get; set; }
        public string lastName { get; set; }
    }

En el evento load del formulario vamos a cargar nuestro datagridview

        private void BuscarOrdenarFrm_Load(object sender, EventArgs e)
        {
            itemsCMB.SelectedIndex = 0;
            dataDG.DataSource = getPersons();

            dataDG.Columns[0].Width = 120;
            dataDG.Columns[1].Width = 120;
            dataDG.Columns[2].Width = 120;
            dataDG.Columns[3].Width = 120;
        }

        private List<personEn> getPersons()
        {
            using (SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["CNNBD"].ToString()))
            {
                cnn.Open();

                string query = "SELECT BusinessEntityID,FirstName, " +
                                    "MiddleName,LastName FROM Person.Person";
                SqlCommand cmd = new SqlCommand(query, cnn);
                SqlDataReader reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    personEn person = new personEn();
                    person.codEn = reader.GetInt32(0);
                    person.firstName = reader[1].ToString();
                    person.middleName = reader[2].ToString();
                    person.lastName = reader[3].ToString();

                    personList.Add(person);
                }
            }

            return personList;
        }

En el sqlconnection utilizo la clase ConfigurationManager para obtener la cadena de conexión a nuestra base de datos.

[C# - Linq] Buscar en Datagridview y ordenar resultados con LINQ utilizando lista generica

Introducción

En este articulo les voy a mostrar como buscar en una datagridview y ordenar los resultados con LINQ. Utilizaremos para buscar la extensión Contains y para ordenar los resultados en forma ascendente o descendente con orderby.

Interfaz Gráfica

La interfaz gráfica es la siguiente:



Procedimiento

Vamos a utilizar la base de datos AdventureWorks2012, en caso de no tener dicha base de datos, podes ver este link  para descargarla e instalarla.

Luego de tener nuestra base de datos preparada, vamos a utilizar la tabla Person.Person y de dicha tabla vamos a usar las columnas BusinessEntityID, FirstName, MiddleName y LastName.

Luego de crear nuestro proyecto, agregamos una clase llamada personEn que va a contener las propiedades que van a corresponder a cada columna

    class personEn
    {
        public int codEn { get; set; }
        public string firstName { get; set; }
        public string middleName { get; set; }
        public string lastName { get; set; }
    }

En el evento load del formulario vamos a cargar nuestro datagridview

        private void BuscarOrdenarFrm_Load(object sender, EventArgs e)
        {
            itemsCMB.SelectedIndex = 0;
            dataDG.DataSource = getPersons();

            dataDG.Columns[0].Width = 120;
            dataDG.Columns[1].Width = 120;
            dataDG.Columns[2].Width = 120;
            dataDG.Columns[3].Width = 120;
        }

        private List<personEn> getPersons()
        {
            using (SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["CNNBD"].ToString()))
            {
                cnn.Open();

                string query = "SELECT BusinessEntityID,FirstName, " +
                                    "MiddleName,LastName FROM Person.Person";
                SqlCommand cmd = new SqlCommand(query, cnn);
                SqlDataReader reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    personEn person = new personEn();
                    person.codEn = reader.GetInt32(0);
                    person.firstName = reader[1].ToString();
                    person.middleName = reader[2].ToString();
                    person.lastName = reader[3].ToString();

                    personList.Add(person);
                }
            }

            return personList;
        }

En el sqlconnection utilizo la clase ConfigurationManager para obtener la cadena de conexión a nuestra base de datos.

[C# - Linq] Buscar en Datagridview y ordenar resultados con LINQ utilizando lista generica

Introducción

En este articulo les voy a mostrar como buscar en una datagridview y ordenar los resultados con LINQ. Utilizaremos para buscar la extensión Contains y para ordenar los resultados en forma ascendente o descendente con orderby.

Interfaz Gráfica

La interfaz gráfica es la siguiente:



Procedimiento

Vamos a utilizar la base de datos AdventureWorks2012, en caso de no tener dicha base de datos, podes ver este link  para descargarla e instalarla.

Luego de tener nuestra base de datos preparada, vamos a utilizar la tabla Person.Person y de dicha tabla vamos a usar las columnas BusinessEntityID, FirstName, MiddleName y LastName.

Luego de crear nuestro proyecto, agregamos una clase llamada personEn que va a contener las propiedades que van a corresponder a cada columna

    class personEn
    {
        public int codEn { get; set; }
        public string firstName { get; set; }
        public string middleName { get; set; }
        public string lastName { get; set; }
    }

En el evento load del formulario vamos a cargar nuestro datagridview

        private void BuscarOrdenarFrm_Load(object sender, EventArgs e)
        {
            itemsCMB.SelectedIndex = 0;
            dataDG.DataSource = getPersons();

            dataDG.Columns[0].Width = 120;
            dataDG.Columns[1].Width = 120;
            dataDG.Columns[2].Width = 120;
            dataDG.Columns[3].Width = 120;
        }

        private List<personEn> getPersons()
        {
            using (SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["CNNBD"].ToString()))
            {
                cnn.Open();

                string query = "SELECT BusinessEntityID,FirstName, " +
                                    "MiddleName,LastName FROM Person.Person";
                SqlCommand cmd = new SqlCommand(query, cnn);
                SqlDataReader reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    personEn person = new personEn();
                    person.codEn = reader.GetInt32(0);
                    person.firstName = reader[1].ToString();
                    person.middleName = reader[2].ToString();
                    person.lastName = reader[3].ToString();

                    personList.Add(person);
                }
            }

            return personList;
        }

En el sqlconnection utilizo la clase ConfigurationManager para obtener la cadena de conexión a nuestra base de datos.


[C#] Cadena de Conexión en el Archivo de configuración (App.Config)

Introducción

En este articulo les voy a explicar como configurar y luego tomar nuestra cadena de conexión hacia una base de datos. La cadena de conexión se va almacenar en nuestro archivo de configuración bajo la etiqueta connectionStrings. Unas de las ventajas que tenemos es que dicha cadena la vamos a poder modificar luego de instalar nuestra aplicación en un cliente, además bajo la etiqueta connectionStrings se permite agregar n conexiones que van a ser identificadas con el atributo name de dicha etiqueta.

Procedimiento

Debemos agregar nuestro archivo de configuración para configurar el elemento connectionStrings para eso hacemos clic sobre nuestro proyecto con el botón secundario del mouse y hacemos clic en agregar --> nuevo elemento sobre elementos de c# hacemos clic en general y seleccionamos archivo de configuración de aplicación. Ojo: no debemos confundir con el archivo de configuración ya que este no es el mismo.



Hacemos clic en aceptar sin cambiar el nombre del archivo. Por defecto se llama: App.config



Este es el contenido de nuestro App.config en el cual como dijimos anteriormente debemos agregar el elemento connectionStrings. Este elemento tiene la etiqueta add que permite agregar n conexiones.
Dentro de esta etiqueta add poseemos ciertas propiedades que permiten configurar nuestra cadena de conexión:
  • connectionString
  • name
  • providerName
La propiedad que vamos a utilizar desde el código es name que nos va a permitir llamar a dicha conexión.
Por lo cual por ahora nos quedaria nuestro app.config

  
    
  


Luego de crear y configurar nuestro app.config debemos llamar a nuestra cadena de conexión desde el código, para ello debemos primero agregar la referencia system.configuration a nuestro proyecto

[C#] Cadena de Conexión en el Archivo de configuración (App.Config)

Introducción

En este articulo les voy a explicar como configurar y luego tomar nuestra cadena de conexión hacia una base de datos. La cadena de conexión se va almacenar en nuestro archivo de configuración bajo la etiqueta connectionStrings. Unas de las ventajas que tenemos es que dicha cadena la vamos a poder modificar luego de instalar nuestra aplicación en un cliente, además bajo la etiqueta connectionStrings se permite agregar n conexiones que van a ser identificadas con el atributo name de dicha etiqueta.

Procedimiento

Debemos agregar nuestro archivo de configuración para configurar el elemento connectionStrings para eso hacemos clic sobre nuestro proyecto con el botón secundario del mouse y hacemos clic en agregar --> nuevo elemento sobre elementos de c# hacemos clic en general y seleccionamos archivo de configuración de aplicación. Ojo: no debemos confundir con el archivo de configuración ya que este no es el mismo.



Hacemos clic en aceptar sin cambiar el nombre del archivo. Por defecto se llama: App.config



Este es el contenido de nuestro App.config en el cual como dijimos anteriormente debemos agregar el elemento connectionStrings. Este elemento tiene la etiqueta add que permite agregar n conexiones.
Dentro de esta etiqueta add poseemos ciertas propiedades que permiten configurar nuestra cadena de conexión:
  • connectionString
  • name
  • providerName
La propiedad que vamos a utilizar desde el código es name que nos va a permitir llamar a dicha conexión.
Por lo cual por ahora nos quedaria nuestro app.config

  
    
  


Luego de crear y configurar nuestro app.config debemos llamar a nuestra cadena de conexión desde el código, para ello debemos primero agregar la referencia system.configuration a nuestro proyecto

[C#] Cadena de Conexión en el Archivo de configuración (App.Config)

Introducción

En este articulo les voy a explicar como configurar y luego tomar nuestra cadena de conexión hacia una base de datos. La cadena de conexión se va almacenar en nuestro archivo de configuración bajo la etiqueta connectionStrings. Unas de las ventajas que tenemos es que dicha cadena la vamos a poder modificar luego de instalar nuestra aplicación en un cliente, además bajo la etiqueta connectionStrings se permite agregar n conexiones que van a ser identificadas con el atributo name de dicha etiqueta.

Procedimiento

Debemos agregar nuestro archivo de configuración para configurar el elemento connectionStrings para eso hacemos clic sobre nuestro proyecto con el botón secundario del mouse y hacemos clic en agregar --> nuevo elemento sobre elementos de c# hacemos clic en general y seleccionamos archivo de configuración de aplicación. Ojo: no debemos confundir con el archivo de configuración ya que este no es el mismo.



Hacemos clic en aceptar sin cambiar el nombre del archivo. Por defecto se llama: App.config



Este es el contenido de nuestro App.config en el cual como dijimos anteriormente debemos agregar el elemento connectionStrings. Este elemento tiene la etiqueta add que permite agregar n conexiones.
Dentro de esta etiqueta add poseemos ciertas propiedades que permiten configurar nuestra cadena de conexión:
  • connectionString
  • name
  • providerName
La propiedad que vamos a utilizar desde el código es name que nos va a permitir llamar a dicha conexión.
Por lo cual por ahora nos quedaria nuestro app.config

  
    
  


Luego de crear y configurar nuestro app.config debemos llamar a nuestra cadena de conexión desde el código, para ello debemos primero agregar la referencia system.configuration a nuestro proyecto


[C#] Manipulación de directorios -- System.IO.Directory

Introducción

En este articulo les voy a explicar como poder crear, eliminar y listar directorios. Ademas como listar archivos y eliminar todo el contenido de un directorio.

Interfaz Gráfica

La interfaz gráfica es la siguiente:


Todo esto va ser posible gracias a la clase que nos provee el .NET Framework llamada Directory que se encuentra en el espacio de nombres System.IO.

Debemos importar nuestra referencia para obtener acceso a dicha clase

using System.IO;

Crear Directorio

Vamos a comenzar por crear un directorio, esto es posible con el método CreateDirectory en el cual debemos pasar como argumento la ruta de la ubicación de nuestro directorio junto al nombre de nuestro nuevo directorio. Es por eso que en nuestra interfaz tenemos un FolderBrowserDialog (...) que nos sirve para buscar la ubicación y el textbox directorio en el cual vamos a indicar el nombre de nuestro nuevo directorio.

        private void buscarBtn_Click(object sender, EventArgs e)
        {
            BDirectorio.ShowDialog();
            rutaTxt.Text = BDirectorio.SelectedPath;
        }

Para crear nuestro nuevo directorio

        private void crearBtn_Click(object sender, EventArgs e)
        {
            string ruta = string.Empty;

            if (string.IsNullOrEmpty(rutaTxt.Text))
            { 
                MessageBox.Show("Debe buscar un directorio");
            }
            else if(Directory.Exists(rutaTxt.Text + @"\" + directorioTxt.Text))
            {
                MessageBox.Show("El directorio ya existe");
            }
            else { 
                ruta = rutaTxt.Text; 
                Directory.CreateDirectory(ruta + @"\" + directorioTxt.Text); 
            }
        }

Verán que estoy realizando una serie de validaciones para evitar que pinche nuestro programa, de hecho podríamos poner un try catch y lanzar una excepción personalizada, pero lo hice de este modo para que puedan entender y ademas conocer otros métodos que expone la clase Directory para poder validar.

Primeros validamos si nuestro ubicación esta vacía utilizando el método IsNullOrEmpty, si es así, significa que no hemos seleccionado ninguna ubicación y mostramos un mensaje.

[C#] Manipulación de directorios -- System.IO.Directory

Introducción

En este articulo les voy a explicar como poder crear, eliminar y listar directorios. Ademas como listar archivos y eliminar todo el contenido de un directorio.

Interfaz Gráfica

La interfaz gráfica es la siguiente:


Todo esto va ser posible gracias a la clase que nos provee el .NET Framework llamada Directory que se encuentra en el espacio de nombres System.IO.

Debemos importar nuestra referencia para obtener acceso a dicha clase

using System.IO;

Crear Directorio

Vamos a comenzar por crear un directorio, esto es posible con el método CreateDirectory en el cual debemos pasar como argumento la ruta de la ubicación de nuestro directorio junto al nombre de nuestro nuevo directorio. Es por eso que en nuestra interfaz tenemos un FolderBrowserDialog (...) que nos sirve para buscar la ubicación y el textbox directorio en el cual vamos a indicar el nombre de nuestro nuevo directorio.

        private void buscarBtn_Click(object sender, EventArgs e)
        {
            BDirectorio.ShowDialog();
            rutaTxt.Text = BDirectorio.SelectedPath;
        }

Para crear nuestro nuevo directorio

        private void crearBtn_Click(object sender, EventArgs e)
        {
            string ruta = string.Empty;

            if (string.IsNullOrEmpty(rutaTxt.Text))
            { 
                MessageBox.Show("Debe buscar un directorio");
            }
            else if(Directory.Exists(rutaTxt.Text + @"\" + directorioTxt.Text))
            {
                MessageBox.Show("El directorio ya existe");
            }
            else { 
                ruta = rutaTxt.Text; 
                Directory.CreateDirectory(ruta + @"\" + directorioTxt.Text); 
            }
        }

Verán que estoy realizando una serie de validaciones para evitar que pinche nuestro programa, de hecho podríamos poner un try catch y lanzar una excepción personalizada, pero lo hice de este modo para que puedan entender y ademas conocer otros métodos que expone la clase Directory para poder validar.

Primeros validamos si nuestro ubicación esta vacía utilizando el método IsNullOrEmpty, si es así, significa que no hemos seleccionado ninguna ubicación y mostramos un mensaje.

[C#] Manipulación de directorios -- System.IO.Directory

Introducción

En este articulo les voy a explicar como poder crear, eliminar y listar directorios. Ademas como listar archivos y eliminar todo el contenido de un directorio.

Interfaz Gráfica

La interfaz gráfica es la siguiente:


Todo esto va ser posible gracias a la clase que nos provee el .NET Framework llamada Directory que se encuentra en el espacio de nombres System.IO.

Debemos importar nuestra referencia para obtener acceso a dicha clase

using System.IO;

Crear Directorio

Vamos a comenzar por crear un directorio, esto es posible con el método CreateDirectory en el cual debemos pasar como argumento la ruta de la ubicación de nuestro directorio junto al nombre de nuestro nuevo directorio. Es por eso que en nuestra interfaz tenemos un FolderBrowserDialog (...) que nos sirve para buscar la ubicación y el textbox directorio en el cual vamos a indicar el nombre de nuestro nuevo directorio.

        private void buscarBtn_Click(object sender, EventArgs e)
        {
            BDirectorio.ShowDialog();
            rutaTxt.Text = BDirectorio.SelectedPath;
        }

Para crear nuestro nuevo directorio

        private void crearBtn_Click(object sender, EventArgs e)
        {
            string ruta = string.Empty;

            if (string.IsNullOrEmpty(rutaTxt.Text))
            { 
                MessageBox.Show("Debe buscar un directorio");
            }
            else if(Directory.Exists(rutaTxt.Text + @"\" + directorioTxt.Text))
            {
                MessageBox.Show("El directorio ya existe");
            }
            else { 
                ruta = rutaTxt.Text; 
                Directory.CreateDirectory(ruta + @"\" + directorioTxt.Text); 
            }
        }

Verán que estoy realizando una serie de validaciones para evitar que pinche nuestro programa, de hecho podríamos poner un try catch y lanzar una excepción personalizada, pero lo hice de este modo para que puedan entender y ademas conocer otros métodos que expone la clase Directory para poder validar.

Primeros validamos si nuestro ubicación esta vacía utilizando el método IsNullOrEmpty, si es así, significa que no hemos seleccionado ninguna ubicación y mostramos un mensaje.


[MS-SQL server] Especificación de identidad de una columna (Campo autonumerico | IDENTITY)

Introducción

En este artículo voy a explicar como hacer para crear una columna de identidad en una tabla. Esta columna debe ser de tipo int. Al poseer esta propiedad, es posible auto-incrementar en 1 el valor del nuevo registro insertado.

Procedimiento

Abrimos SQL server management studio y nos autenticamos con nuestros datos.

Al ingresar, procedemos a crear una nueva tabla en nuestra base de datos.

Para ello expandimos el nodo de nuestra base de datos y hacemos clic con el botón derecho sobre el nodo tablas y hacemos clic en nueva tabla.

Crearemos tres sencillos campos a modo de ejemplo:
  • CodReg -- INT (PK)
  • Apellido -- VARCHAR(50)
  • Nombre -- VARCHAR(50)

A la columna CodReg vamos a otorgarle la identidad, recordemos que esta columna debe ser del tipo int.

Para esto, seleccionamos la columna y en la parte inferior vamos a obtener acceso a las propiedades de la columna. Buscamos la propiedad Especificación de identidad, la expandimos y hacemos doble clic sobre (identidad). Al hacer doble clic, verán que automáticamente se completan los dos campos que tenemos por debajo de esta propiedad. 


[MS-SQL server] Crear nuevo inicio de sesion

Introducción

En este artículo voy a explicar como hacer para crear un nuevo inicio de sesión (Autenticación SQL Server. ). Ademas voy a explicar los roles mas importantes que puede tener cada usuario.

Procedimiento

Abrimos SQL server management studio y nos autenticamos con nuestros datos.

Al ingresar, expandimos el nodo seguridad y hacemos clic con el botón derecho de nuestro mouse en inicios de sesión y hacemos clic en Nuevo inicio de sesión. 



Al hacer clic se nos abrirá un nuevo formulario para completar los datos del nuevo inicio de sesión.

En nombre de inicio de sesión debemos ingresar el nombre con el cual queremos ingresar al servidor.

Luego debemos seleccionar si va a ser una autenticación de Windows o de SQL Server. Como mencionamos anteriormente, la nuestra va a ser de SQL Server, por lo cual hacemos clic en dicha opción.

Ingresamos la contraseña y la confirmamos, si es una contraseña debil, debemos destildar la opción exigir directivas de contraseña (no recomendable). 


Antes de aceptar, hacemos clic sobre la pagina Roles de servidor (situado arriba a la izquierda) en el cual vamos a poder concederle ciertos privilegios en todo el servidor a nuestro inicio de sesión.


[C#] Ejecutar aplicación como administrador

Introducción

En este artículo voy a explicar como hacer para poder ejecutar una aplicación con privilegios de administrador. Esto a veces es necesario para poder ejecutar correctamente nuestra aplicación si utilizamos algún servicio de nuestro sistema operativo o tal ves si manejamos carpetas, ya sea crearlas, modificar alguna existente o eliminar alguna.

Procedimiento

Todo lo que debemos hacer es crear un nuevo archivo llamado archivo de manifiesto de aplicación.

Para crear este archivo debemos hacer clic con el boton secundario de nuestro mouse sobre el nombre del proyecto y hacer clic en Agregar --> Nuevo elemento

[C#] Ejecutar aplicación como administrador

Introducción

En este artículo voy a explicar como hacer para poder ejecutar una aplicación con privilegios de administrador. Esto a veces es necesario para poder ejecutar correctamente nuestra aplicación si utilizamos algún servicio de nuestro sistema operativo o tal ves si manejamos carpetas, ya sea crearlas, modificar alguna existente o eliminar alguna.

Procedimiento

Todo lo que debemos hacer es crear un nuevo archivo llamado archivo de manifiesto de aplicación.

Para crear este archivo debemos hacer clic con el boton secundario de nuestro mouse sobre el nombre del proyecto y hacer clic en Agregar --> Nuevo elemento

[C#] Ejecutar aplicación como administrador

Introducción

En este artículo voy a explicar como hacer para poder ejecutar una aplicación con privilegios de administrador. Esto a veces es necesario para poder ejecutar correctamente nuestra aplicación si utilizamos algún servicio de nuestro sistema operativo o tal ves si manejamos carpetas, ya sea crearlas, modificar alguna existente o eliminar alguna.

Procedimiento

Todo lo que debemos hacer es crear un nuevo archivo llamado archivo de manifiesto de aplicación.

Para crear este archivo debemos hacer clic con el boton secundario de nuestro mouse sobre el nombre del proyecto y hacer clic en Agregar --> Nuevo elemento


[MS-SQL server] Permitir cambios en una tabla ya creada

Introducción

En este artículo voy a explicar como hacer para poder realizar un cambio en una de nuestras tablas de nuestra base de datos. SQL server management studio trae activada por defecto una opción que luego de crear nuestra tabla no nos deja hacer una modificación en ella posteriormente.

Imagen

Esta es una imagen de la advertencia que nos arroja el SQL server management studio al realizar el cambio en una de nuestras tablas.


El error: No se permite guardar los cambios. Los cambios que ha realizado requieren que se quiten y vuelvan a crear las siguientes tablas. Quizá ha realizado cambios en una tabla que se no puede volver a crear o ha habilitado la opción Impedir guardar cambios que requieran volver a crear tablas.

Procedimiento

Debemos hacer clic sobre el menú Herramientas y hacer clic en Opciones