Blog de Jorge Pedraza

mayo 1, 2012

Maestro detalles con Entity Framework en Windows Forms

Filed under: Aplicaciones Windows — JorgePedraza @ 5:37 pm
Tags: , , ,

Hola, el presente articulo tiene como intención resaltar una forma rápida y sencilla de trabajar con la tecnología Entity Framework bajo el ambiente de Windows Forms Application. Para esto se muestra las secuencias clave del desarrollo de una solución basada en un formulario Windows, el cual a través de Entity Framework se gestionará determinada Base de datos, tal es el caso de SQL server 2008 R2 Express.

Requisitos:

  1. Microsoft Visual Studio 2010 SP1.
  2. Microsoft SQL Server 2008 R2 o Superior.
  3. Experiencia en desarrollo con Base de Datos.
  4. Conocimiento sobre Entity Framework.
  5. Microsoft Windows 7 o superior.

Contenido Clave:

Para generar el desarrollo de la solución base, se debe iniciar una instancia de Visual Studio 2010 SP1 donde se crea nuevo proyecto del tipo Windows Forms Application, con un nombre especifico, por ejemplo WindowsApplicationEF. Ahora a continuación se procede con las siguientes indicaciones:

1. Agregar archivo demoEF.mdf 2. Establecer estructura demoEF.mdf   3. Establecer diagrama de demoEF.mdf
AdddemoEF DbdemoEF DiagramaSQLsrvDEMOEF
4. Agregar ModeldemoEF.edmx 5. Establecer archivo demoEF.mdf 6. Seleccionar tablas especificas
AddEF EntityDMW1 EntityDMW2
7. Verificar entidades creadas 8. Establecer SubTotal para DetOrden 9. Calcular MontoBruto para EncOrden
ModeldemoEF ExtensionDetOrden ModeldemoEFplusCode
10. Seleccionar Form1 11.Agregar DataGridViews y botones 12. Parametrizar DataGridView1
EncOrden
SlnDemoEF MDEFWFSE GridView1EditColumns
13. Parametrizar DataGridView2
DetOrden
14. Verificar interfaz de Usuario 15. Establecer código de desarrollo
GridView2EditColumns MDEFWFA CodigoDemoEF
16. Realizar prueba de ejecución
MDEFWF

Nota Importante: Esta solución no incluye más opciones ni validaciones de usuario, ya que la intención principal de la misma es representar una alternativa base para crear soluciones futuras de mayor grado de complejidad a través de una vía solida y precisa.

Código Fuentes:

  • WindowsApplicationEF (Visual Basic 2010, Windows Forms Application, SQL Server 2008 R2 Express, Entity Framework)

En Resumen:

Una vez más se puede apreciar una alternativa simple y productiva de crear soluciones Windows con base de datos a través de tecnologías actuales y de proyección futura dentro de la plataforma .NET, como es Entity Framework.

Enlaces de Interés:

julio 5, 2010

Busquedas en DataGridView

Filed under: Aplicaciones Windows — JorgePedraza @ 5:47 am
Tags: , , , ,

Hola, la presente intenta mostrar un procedimiento de interés relacionado con ADO.NET. Cuando se trabaja con aplicaciones de base datos se puede apreciar un gran porcentaje el uso de filtrado de datos, para  el cual se va citar un clásico escenario de búsqueda rápida de filas dentro de un control DataGridView.

Dicho escenario es una aplicación Windows donde contiene controles sensibles a datos, tal es el caso del DataGridView, además de poseer un mecanismo de vinculación y gestión de datos. En esta aplicación se establece otros elementos de interés como caja de texto y etiqueta. El manejo de la aplicación se basa en introducir un criterio de búsqueda aproximado o exacto dentro de determinada caja de texto, y de acuerdo a la primera coincidencia se establece como resultado la selección dinámica de la fila contenida dentro del control DataGridView.

BRDGV
Requisitos:

  • .NET Framework 2.0 o superior.
  • Motor de Base de Datos Sql Server 2005 o superior.
  • Experiencia base con la capa ADO.NET 2.0 o superior.
  • Fundamento de Base de datos Sql Server 2005 o Superior.

Puntos relacionados con este tema:

  • DataAdapter: Representa el objeto encargado de procesa información entre determinado origen y destino de datos. Para fine del tema se va utiliza la clase SqlDataAdapter enfocado en base de datos Sql Server.
  • DataTable: Represente la réplica virtual de una tabla de cierto origen o estructura personalizada de datos.
  • DefaultView: Obtiene una vista personalizada de un Datatable que puede incluir una vista filtrada o una posición del cursor
  • DataGridView: Representa el control base en forma de cuadricula para la visualización y gestión de datos vinculado en determinado DataTable.
  • Windows Forms: Es el control principal de interfaz grafica que actúa como contenedor de controles de gestión de usuario.

Descripción del Algoritmo para Búsqueda rápida de fila en un control DataGridView:

  1. Se declara 3 variables:
    • Posicion del  tipo Integer,  el cual representa la posición de un registro.
    • Ncolumn del tipo String,  el cual representa el nombre de columna para filtro.
    • Strsort del tipo String, el cual representa el nombre de columna para Ordenar.
  2. Se actualiza el valor de la variable Strsort según el caso selectivo de la columna establecida para la ordenación.
  3. El valor de la variable Strsort se pasa al método Sort de la vista del DataTable que está vinculado al objeto DataGridview.
  4. Se crea un DataTable temporal llamado tablaT desde la vista actualizada.
  5. Se declara un arreglo de DataRow llamado filas, el cual se llenara a partir de la selección de determinados registros en base a un criterio, bien sea aproximado o exacto.
  6. Se consulta la longitud de dicho arreglo, para determinar  el índice del primer DataRow y fijarlo en la variable posición.
  7. Se escribe un bloque condicional para seleccionar o no la fila del DataGridView en base al valor de la variable posición.

Descripción del codigo fuente relacionado con el Algoritmo:

Dim dtpersonas As New Data.DataTable ‘Datatable especifico para Almacenar datos.
Dim columna As Integer = 0 ‘Valor numero de la columna del DataGridView.
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtBuscar.TextChanged
If txtBuscar.Text <> “” Then ‘Verifica que la caja de texto no este vacia

        Dim posicion As Integer = –1 1
Dim Ncolumn As String = DataGridView1.Columns(columna).Name ‘Obtiene el Nombre de Columna actual del DataGridView.
Dim Strsort As String = “”

        Select Case DataGridView1.Columns(columna).HeaderCell.SortGlyphDirection ‘Obtiene nivel de ordenación establecido sobre la columna del DataGridView. 2
Case SortOrder.Ascending ‘En Caso de ser Ascendente
Strsort = Ncolumn & ” Asc” ‘Se fija el nombre de columna y la marca Asc
Case SortOrder.Descending ‘En Caso de ser Descendente
Strsort = Ncolumn & ” Desc” ‘Se fija el nombre de columna y la marca Desc
End Select

        dtpersonas.DefaultView.Sort = Strsort ‘Se Actualiza la vista segun el nivel de ordenación establecido. 3
Dim tablaT As DataTable = dtpersonas.DefaultView.ToTable ‘Se crea un DataTable temporal en base a la Vista del DataTable Actual. 4
Dim filas() As DataRow = tablaT.Select(DataGridView1.Columns(columna).Name & ” like ‘” & txtBuscar.Text & “%'”) ‘Se establece y ejecuta filtro de llenado de arreglo de DataRow. 5

        If filas.Length > 0 Then posicion = tablaT.Rows.IndexOf(filas(0)) ‘Se establece en la variable posicion el Indice de la primera fila del arreglo del DataRow desde tablaT. 6

        If posicion > -1 Then ‘Verifica que posicion es mayor –1.7
DataGridView1.Item(columna, posicion).Selected = True ‘Caso verdadero se selecciona la fila del DataGridView.
Else
DataGridView1.Item(columna, DataGridView1.CurrentRow.Index).Selected = False ‘Caso falso se Deselecciona la fila del DataGridView.
        End If

    Else
        DataGridView1.Item(columna, DataGridView1.CurrentRow.Index).Selected = False ‘En caso de Caja de texto de Busqueda este vacio, se Deselecciona la fila del DataGridView.
End If

End Sub

Nota Importante: Algo que no se está incluyendo en este tema, es la validación de la entrada de datos relacionado con el criterio de búsqueda. Y esto se debe a que  el procedimiento planteado esta susceptible a errores con la introducción de instrucciones o caracteres especiales por ejemplo: %, ‘, $, etc. Para el cual queda como tarea adicional realizar las respectivas validaciones.

En Resumen: Con este procedimiento se logra satisfacer cierto escenario relacionado con el filtrado de datos a nivel de control de usuario, tal es el caso del DataGridView y todo esto relacionado con la manipulación de criterio de búsquedas aproximado o exacto generado por parte del usuario final.

Anexo código fuente para ilustra el tema: Búsquedas en DataGridView (Visual Basic 2010 y SQL Server 2008)

Crea un blog o un sitio web gratuitos con WordPress.com.