UNIVERSIDAD TÉCNICA DE MACHALA FACULTAD DE INGENIERÍA CIVIL ESCUELA DE INFORMÁTICA

CARRERA DE INGENIERÍA DE SISTEMAS

PORTAFOLIO DE LA ASIGNATURA

PROGRAMACIÓN I
CURSO 6TO. SEMESTRE PARALELO “A” (PROMOCION#. 11)

ESTUDIANTE RESPONSABLE

HONORES CUN JENNIFER LISSETH
DOCENTE RESPONSABLE

ING. MARIUXI PAOLA ZEA ORDOÑEZ, MG. SC.

PERIODO 2013 - 2014

MACHALA – EL ORO – ECUADOR

INDICE
Contenido INDICE ............................................................................................................................................................. 2 SYLLABUS DE LA ASIGNATURA ............................................................................................................... 4 AUTORRETRATO ........................................................................................................................................ 18 CURRÍCULO ................................................................................................................................................. 19 UNIVERSIDAD TÉCNICA DE MACHALA ................................................................................................ 20 MISIÓN ....................................................................................................................................................... 20 VISIÓN ....................................................................................................................................................... 20 ESCUELA DE INFORMÁTICA ................................................................................................................... 21 MISIÓN ....................................................................................................................................................... 21 VISIÓN ....................................................................................................................................................... 21 PERFIL PROFESIONAL.......................................................................................................................... 22 DIARIO METACOGNITIVO ......................................................................................................................... 23 UNIDAD I: INTRODUCCIÓN A .NET ........................................................................................................ 24 Semana N° 1 Día 1: Clase 1 ................................................................................................................... 25 Semana N° 1 Día 2: Clase 2 ................................................................................................................... 27 Semana N° 1 Día 3: Clase 3 ................................................................................................................... 29 Semana N° 2 Día 1: Clase 4 ................................................................................................................... 33 UNIDAD II: BASE DE DATOS SQL Y ADO .NET ................................................................................... 42 Semana N° 3 Día 1: Clase 5 ................................................................................................................... 43 Semana N° 4 Día 1: Clase 6 ................................................................................................................... 51 UNIDAD III: CONCEPTO DE INTERFAZ GRÁFICA DE USUARIO Y PROGRAMACIÓN EN C# .. 60 Semana N° 4 Día 2: Clase 7 ................................................................................................................... 61 Semana N° 4 Día 3: Clase 8 ................................................................................................................... 85 Semana N° 5 Día 1: Clase 9 ................................................................................................................... 93 Semana N° 5 Día 2: Clase 10 ............................................................................................................... 128 Semana N° 6 Día 1: Clase 11 ............................................................................................................... 152 Semana N° 6 Día 2: Clase 12 ............................................................................................................... 159 Semana N° 7 Día 1: Clase 13 ............................................................................................................... 166 Semana N° 7 Día 2: Clase 14 ............................................................................................................... 167 Semana N° 8 Día 1: Clase 15 ............................................................................................................... 168 Semana N° 8 Día 2: Clase 16 ............................................................................................................... 169 Semana N° 9 Día 1: Clase 17 ............................................................................................................... 176

Semana N° 9 Día 2: Clase 18 ............................................................................................................... 204 Semana N° 10 Día 1: Clase 19 ............................................................................................................ 239 Semana N° 10 Día 2: Clase 20 ............................................................................................................ 261 Semana N° 11 Día 1: Clase 21 ............................................................................................................ 276 Semana N° 11 Día 2: Clase 22 ............................................................................................................ 289 UNIDAD IV: PRESENTACIÓN DE RESULTADOS .............................................................................. 291 Semana N° 11 Día 3: Clase 23 ............................................................................................................ 292 ACTIVIDADES DE APRENDIZAJE INTRA Y EXTRA CLASE ............................................................ 303 UNIDAD I: INTRODUCCIÓN A .NET ...................................................................................................... 304 Actividad N° 1 .......................................................................................................................................... 305 Actividad N° 2 .......................................................................................................................................... 307 Actividad N° 3 .......................................................................................................................................... 313 Actividad N° 4 .......................................................................................................................................... 316 Actividad N° 5 .......................................................................................................................................... 326 UNIDAD II: BASE DE DATOS SQL Y ADO .NET ................................................................................. 334 UNIDAD III: CONCEPTO DE INTERFAZ GRÁFICA DE USUARIO Y PROGRAMACIÓN EN C# 335 Actividad N° 6 .......................................................................................................................................... 336 Actividad N° 7 .......................................................................................................................................... 343 Actividad N° 8 .......................................................................................................................................... 356 Actividad N° 9 .......................................................................................................................................... 357 Actividad N° 10 ........................................................................................................................................ 363 UNIDAD IV: PRESENTACIÓN DE RESULTADOS .............................................................................. 379 EVALUACIONES PARCIALES................................................................................................................. 380 EXAMEN FINAL .......................................................................................................................................... 383 PROYECTO FINAL .................................................................................................................................... 384

SYLLABUS DE LA ASIGNATURA

UNIVERSIDAD TÉCNICA DE MACHALA
FACULTAD DE INGENIERÌA CIVIL CARRERA DE INGENIERÌA DE SISTEMAS

SYLLABUS ESTANDARIZADO
1.- DATOS GENERALES Asignatura: PROGRAMACIÓN I Eje Curricular de la Asignatura: PROFESIONAL Horas presenciales teoría: 1 horas de clases teóricas por semana / 40 horas Semestrales. Horas presenciales práctica: 4 horas de clase presenciales en laboratorios o en el campo por semanas / 40 horas Semestrales. Horas atención a estudiantes: Código de la Asignatura: IS502 Año: 2013 - 2014 Ciclo/Nivel: 4to. Semestre

Número de créditos: 5 (CINCO)

Horas trabajo autónomo: 5 horas semanales / 80 horas semestrales

Fecha de Inicio: 6/Mayo/2013 Prerrequisitos: IS405 Base de Datos Correquisitos: IS504 Diseño Orientado a Objetos

Fecha de Finalización: 28/Septiembre/2013

2.- JUSTIFICACION DE LA ASIGNATURA Programación I es una asignatura de aplicación práctica y técnica perteneciente al eje profesional de los Ingenieros de Sistemas, que sirve para la construcción de sistemas informáticos que permitan resolver las necesidades o requerimientos de empresas e instituciones comerciales públicas o privadas; por lo que está orientada para que el estudiante sea capaz de desarrollar sistemas informáticos tomando en cuenta la información que consta en el análisis de datos, de acuerdo a las necesidades de la empresa y los usuarios mediante el lenguaje de programación C#.

3.- OPERACIONALIZACION DE LA ASIGNATURA CON RESPECTO A LAS COMPETENCIAS DEL PERFIL PROFESIONAL 3.1 Objeto de estudio de la asignatura El Objeto de estudio de la asignatura es: programación en lenguaje C#. 3.2 Competencia de la asignatura Analizar, Diseñar e implementar Sistemas de Información. 3.3 Relación de la asignatura con los resultados de aprendizaje

ESULTADOS DEL APRENDIZAJE a) Habilidad para aplicar el conocimiento de las Ciencias Básicas de la profesión b) Pericia para diseñar y conducir experimentos, así como para analizar e interpretar datos. c) Destreza para el manejar procesos de Ingeniería de Sistemas

CONTRIBUCIÓN (alta, media, baja)

EL ESTUDIANTE DEBE: Aplicar procedimientos y leyes de la lógica matemática para la implementación de código de programación para la eficiencia y la efectividad de soluciones informáticas.

BAJA

BAJA

ALTA

d) Trabajo multidisciplinario.

MEDIA

e) Resuelve problemas de Ingeniería de Sistemas.

ALTA

Levantar e interpretar datos de los procesos de negocio, a través de encuestas, entrevistas y observación, para el modelamiento y diseño de la aplicación, así como su verificación mediante pruebas de unidad. Diseñar componentes de código reutilizables, para su implementación entre diferentes proyectos de desarrollo de software aplicables en distintos contextos de negocio. Integrar y colaborar en el desarrollo del proyecto de aplicación final donde se analizará problemática de diferente índole: financiera, comercial, médica, educativa, entre otras. Identificar problemas informáticos generales que involucren parámetros comunes y determinen subrutinas reutilizables. Asumir la participación en las actividades con responsabilidad. Demostrar su participación e innovación de únicamente los involucrados y entregarlo a tiempo

f) Comprensión de sus responsabilidades profesionales y éticas

BAJA

g) Comunicación efectiva

ALTA

Utilizar un lenguaje simplificado, ordenado y estructurado para explicar la factibilidad y las ventajas del producto que han desarrollado. Desarrollar manuales de usuario claros y didácticos, de tal manera que las dudas del usuario se puedan resolver fácilmente.

h) Impacto en profesión y en contexto social

la el

----------

i) Aprendizaje para la vida j) Asuntos contemporáneos k) Utilización técnicas instrumentos modernos de e

BAJA

BAJA

BAJA

Practicar la investigación para comprender la necesidad de seguir capacitándose continuamente. Analizar problemas de actualidad y más comunes del negocio, que se resuelvan con soluciones informáticas de escritorio. Conocer nuevas metodologías y técnicas de programación que simplifiquen procesos de extracción y transformación de datos Dirigir grupos de trabajo, liderando su área de mayor competencia con empatía.

l) Capacidad para liderar, gestionar o emprender proyectos

BAJA

3.4 Proyecto o producto de la asignatura: Los estudiantes elaborarán un trabajo o proyecto de aplicación de la asignatura en el desarrollo de software de escritorio para una empresa de la localidad. El proyecto de investigación estará orientado hacia la utilización de las técnicas de programación en la resolución de problemas, que brinde seguridad, acceso y navegación, utilizando el lenguaje de programación C#.

4.- PROGRAMA DE ACTIVIDADES: 4.1 Estructura de la asignatura por unidades:

UNIDAD I. ―INTRODUCCIÓN A .NET‖

COMPETENCIAS

RESULTADOS DE APRENDIZAJE

1.- Identificar los objetivos 1.- Describe conceptos y terminología del lenguaje de sobre el lenguaje de programación. programación C#. 2.- Reconoce los componentes del IDE

la información.Gestionar la 2.Crear y generar 1.2. información. modular.. Visual C#.. ―CONCEPTO DE INTERFAZ GRÁFICA DE USUARIO Y PROGRAMACIÓN EN C# 1. 1..Navega y utiliza la ayuda.Utilizar programación valor y referencia.Escribe programas que se conectan Datos con el lenguaje de a una base de datos y muestren la programación C#.Crea interfaces gráficas amigables y a programar en la flexibles... 2. componentes del IDE de 3. 2...Presenta la información para toma de decisiones de una Base de Datos en un medio impreso. documentación y sangría se pueden utilizar para que para facilitar la posterior lectura del la interfaz gráfica sea código.2 Estructura detallada por temas: UNIDAD I: INTRODUCCIÒN A .. integridad y seguras sobre la base de datos 3..Programa métodos que muestren 4.NET SEMANA S DE ESTUDI O TEMAS CONTENIDOS ESTRATEGIAS DE APRENDIZAJE HOR AS .NET‖ 1. 2.Crea interfaces que permiten informes necesarios para parametrizar los informes.. amigable. ―BASE DE DATOS SQL Y ADO . construcción de un sistema 2. implementación y mantenimiento de los 5.Manejar controles que comentarios.. 4. II..Utiliza nombres estandarizados.. desarrollo.Identificar los métodos 1. la toma de decisiones.Utilizar funciones en C#..Identificar los de C#.-Construye sistema que permiten información de la Base de realizar operaciones CRUD con Datos.Construye módulos que valida el ingreso de datos para la integridad de sistemas. IV.Crea funciones utilizando datos por 3. 3. II.Conectar una Base de 1. ―PRESENTACIÓN DE RESULTADOS‖ 4.Aplicar y emplear el características de bajo acoplamiento y lenguaje C# para el alta cohesión..

Nuevos proyectos y elementos de una solución.06/05/13 – 11/05/13 Principios de 1.NET Elaboración de mapas conceptuales sobre WPF. tecnología y WPF.6. importanci a Elaboración del objetivo personal para el módulo.5. Lectura: Lenguaje C# y la plataforma . Los desafíos del programador.4. Historia . Práctica de laboratorio. Introducción Genera al IDE de 1. lidades. Arquite ctura. Nace la era .2. Lectura: Quince años de innovación tecnológica.7. C#.NET. 1. ventajas y desventajas de los lenguajes de programación más actuales en el mercado.1. Elaboración de un ensayo acerca de . Diagnó programación stico 1. Elaboración de un cuadro comparativo acerca de las características.13/05/13 – 18/05/13 Net Framework 4.0 1. 5 . Lectura: Dos enfoques de programación Elaboración de un mapa conceptual sobre ¿Qué es programar? 5 Resolución de Casos de Estudio 1. 1. 2. ¿Qué es? Novedades . Composici ón. Elaboración de cuadro sinóptico acerca de las características que tendrá un sistema (aplicación informática) desarrollada en C#. Visual C# Barra de Menú. Navegació n y Ayuda. 1.8. Concepto. Asisten Investigaciones para profundizar los temas.1. Introdu cción a las Elaboración de línea de tiempo computado sobre evolución de los lenguajes de res y C# programación.NET Framework.3. un lenguaje actual.

5 Elaborar un cuadro comparativo acerca de los DBMS que trabajan con C# (Características. los temas. y referencia. Elaboración de cuadro sinóptico sobre ADO. Nombres . conexión mediante programación.5.4.tes.NET SEMANAS DE ESTUDIO 3. Crear Desventajas) Práctica de laboratorio Taller para implementar diagrama E/R en el DMBS seleccionado.6. 01/06/13 2. Base de Arquitectura 20/05/13 – Datos ADO 25/05/13 2. Investigaciones para profundizar 27/05/13 – definiciones. Investigaciones para profundizar los temas.1. comparación Elaboración de cuadros sinópticos sobre las Funciones en C#. Ventajas. Declarando y Elaboración de mapas mentales trabajando con sobre los Tipos de datos por valor variables.Términos y 2.2. Funciones.TEMAS CONTENIDOS ESTRATEGIAS DE APRENDIZAJE HORAS Conexión a 2. Diseñador es y editores TOTAL DE HORAS DE UNIDAD I 10 NIDAD II: BASE DE DATOS SQL Y ADO. Crear una conexión mediante el asistente 2.3. Tipos de datos por Valor y Referencia 2. 1 4.

Excep cion Generalidades . 6. Elaboración de lista de verificación acerca de las características de un Manejo de 3. Práctica de Laboratorio. Lecturas sobre el tema. Principales controles 3. Principales controles Investigaciones para profundizar los 4 temas. Adicionar.2.1. Investigaciones para profundizar los 5 Navegar temas. Práctica de Laboratorio. Propiedades Investigaciones para profundizar los 5 temas.1. 3. Elaboración de listas de verificación acerca de las características de un buen diseño de interface para el usuario.3.2.03/06/13 – 08/06/12 Formularios Windows Forms 3.27/05/13 – 01/06/13 TEMAS CONTENIDOS ESTRATEGIAS DE APRENDIZAJE HOR AS Formularios Windows Forms 3. Clases y Investigaciones para profundizar los 5 Métodos temas.17/06/13 – 22/06/13 Operaciones CRUD 3. TOTAL DE HORAS DE UNIDAD II 6 UNIDAD III: CONCEPTOS DE INTERFACE GRÀFICA DE USUARIO Y PROGRAMACIÓN EN C# SEMAN AS DE ESTUDI O 4. 5. Práctica de laboratorio.5.reservados. ¿Qué es? buen diseño de entrada / salida. .10/06/13 – 15/06/13 Manejo Eventos de 3. ejemplos 7. excepciones. Programación de métodos. Práctica de laboratorio. Ensayo acerca de los objetos GUI que se pueden utilizar para crear la interface gráfica en C#.4. System.

12.8.Caso de Estudio 8. Resolución de caso de Estudio. Práctica de Laboratorio.7.11. Eliminar. 11.Taller . Manejo de 3.13. Búsqueda registros. Práctica de Laboratorio. Taller .6. Validaciones de datos Práctica de Laboratorio.10. Validación Investigaciones para profundizar los 5 Integridad temas. 3. Cálculos Acceso Sistema al 3. Investigaciones para profundizar los 5 de temas. Investigaciones para profundizar los 5 Modificar temas.15/07/13 – 20/07/13 Integridad 3.22/07/13 – 27/07/13 Consultas Práctica de Laboratorio.24/06/13 – 29/06/13 Operaciones CRUD 3. y manejo de Menús.Caso de Estudio 10.Formulari os MDI Investigaciones para profundizar los 5 temas. Creación Práctica de Laboratorio.9. llave principal Práctica de Laboratorio.Caso de Estudio 01/07/13 – 06/07/13 9.08/07/13 – 13/07/13 Programació n Avanzada EXAMEN HEMISEMESTRE 3.29/07/13 – 03/08/13 3. Validaciones llave ajena 3.12. Usuarios TOTAL DE HORAS DE UNIDAD III 44 UNIDAD IV: PRESENTACIÒN DE RESULTADOS SEMANAS DE TEMAS CONTENIDOS ESTRATEGIAS DE HORAS . Detalle. Valores Investigaciones para profundizar los 5 automáticos temas.5. 3. Varias tablas Formularios Investigaciones para profundizar los Maestro – temas. Taller .

8. .1.8. Informes con filtros y quiebre de control 14. Informes Práctica de Laboratorio. Desarrollo Práctica de Laboratorio de un proyecto dirigido 4. 4.8. las clases y las actividades serán: a) Clases magistrales.3.ESTUDIO 13. mostrando y analizando ejemplos. tipo maestro – detalle 4.METODOLOGIA: (ENFOQUE METODOLOGICO) 5. Métodos de enseñanza De acuerdo a la temática propuesta. RECUPERACIÓN DE CLASES Y PREPARACIÓN DE EXAMENES FINALES EXAMEN FIN DE SEMESTRE 02/09/13 – 07/09/13 09/09/13 – 14/09/13 16/09/13 – 21/09/13 EXAMEN DE SUSPENSO MEJORAMIENTO TOTAL DE HORAS DE UNIDAD IV Y 20 5.Crystal 05/08/13 – Reports 10/08/13 Visual C# APRENDIZAJE 4. Creación y Investigaciones para profundizar 5 y ejecución los temas. Desarrollo Práctica de Laboratorio de un proyecto dirigido 5 5 4.2. donde se expondrán los temas de manera teórica.1. Defensa Presentación de un informe 5 de Proyectos técnico escrito y presentación oral sobre las bondades y características de la solución desarrollada para la institución seleccionada.Proyecto 26/08/13 – 31/08/13 4.Proyecto 12/08/13 – 17/08/13 15..Proyecto 19/08/13 – 24/08/13 16.

los organice. entre otros)  Aula Virtual 6. De estos análisis saldrán los trabajos bibliográficos que deberán desarrollar y entregar posteriormente. PORTAFOLIO DE LA ASIGNATURA . 7. sobre los puntos sobresalientes o trascendentales que se van a exponer. indague. mapas mentales. individuales o por grupos sobre profundización de temas a tratarse.  Aplicaciones para elaborar diagramas (Visio) y diseño de interface (Paint. c) Trabajo autónomo u horas no presenciales.b) Trabajo en grupo. d) Formas organizativas de las clases. ensayos. (bibliografía. Trabajos de campo.  Equipo de proyección multimedia y material académico en Power Point.Referida al aprendizaje por descubrimiento y construcción del conocimiento por parte de los estudiantes. entre otros. recopilación de datos acerca de los procesos y datos de la empresa para estructurar esquemas de base de datos. citas y referencias bibliográficas).. Adobe. que será el material básico para estructurar la carpeta del estudiante (o cuaderno) al que se agregará el trabajo en grupo: 1. para elaborar los elementos de la literatura científica (fichas. además de resúmenes. interprete y encuentre soluciones a las dificultades planteadas por los profesores.  Libros y revistas de la biblioteca. mapas conceptuales. líneas de tiempo.COMPONENTE INVESTIGATIVO DE LA ASIGNATURA: Los tipos de investigación que se realizará en la asignatura son: Investigación Formativa. Tareas estudiantiles. como recurso operativo para elaborar el documento científico. códigos y especificaciones) recoja datos. realizados individual o grupalmente. donde realizan investigación. así mismo que haga revisiones de literatura. Investigaciones bibliográficas. logra que el estudiante busque. y encuentre situaciones similares. los trabajos bibliográficos semanales de tipo individual. e) Medios tecnológicos que se utilizaran para la enseñanza:  Pizarrón para tiza líquida y marcadores de varios colores. Este método consiste en que el profesor a partir de una situación problémica.  Internet y material de Webs.. 2. los alumnos asistirán a clase con el material guía (libro) adelantando la lectura del tema de clase de acuerdo a la instrucción previa del docente. cuadros sinópticos. 3.

Durante el desarrollo de la actividad académica el estudiante construirá un Portafolio que comprende la evidencia de dichas actividades. formativa y sumativa.1 Evaluaciones Parciales: Pruebas parciales dentro del proceso. considerando que la calificación de los exámenes finales de cada parcial corresponderán al 30% de la valoración total. determinadas con antelación en las clases. 8. 8. los estudiantes rendirán un examen final. el restante 70% se lo debe distribuir de acuerdo a los demás parámetros. al finalizar todas las unidades. participación en prácticas de laboratorio y de campo de acuerdo a la pertinencia en la asignatura.2 Exámenes: Examen Final. 17. EVALUACIÓN La evaluación será diagnóstica. y. El portafolio de la asignatura contendrá la siguiente información         Carátula Syllabus Tareas en clase Tareas extraclase Evaluaciones parciales de cada unidad Evaluación final Evidencia de eventos investigativos (Informe Proyecto Final de la asignatura). Presentación de informes escritos como producto de investigaciones bibliográficas. Apuntes relevantes (Resumen de las clases) 8. considerándolas necesarias y complementarias para una valoración global y objetiva de lo que ocurre en la situación de enseñanza y aprendizaje. Participación en clases a partir del trabajo autónomo del estudiante. 8. utilizando un mínimo de cinco parámetros.3 Parámetros de Evaluación: PARAMETROS DE EVALUACION PORCENTAJES . Los alumnos serán evaluados con los siguientes parámetros. en la semana No.

aspx http://www. Guía del módulo de Programación I.1. PARCIAL Pruebas parciales dentro del proceso Presentación de informes escritos Investigaciones bibliográficas Participación en clase Trabajo autónomo Prácticas de laboratorio Prácticas de campo Exámenes Finales Total 20 10 10 10 10 10 30 100 9. C. 2007. Editorial Macro.aspx?id=165 . M.aspx http://www. 9. México. 9. Editorial Pearson Educación. 2013. BIBLIOGRAFÍA 9.com.csharp-station. Cómo programar en C#. Ecuador. F.90%29. Perú.com/csharp_net/start http://es.info/NET/cursoCSharpErik/index.  ZEA. Lima.elguille. 2011. Segunda Edición.0.htm http://www. Conociendo lo nuevo de Visual C# 2010 y Framework 4.2. Guía Práctica para usuarios.net/Default.scribd. Universidad Técnica de Machala.1er. Microsoft Visual C# 2005. Editorial Anaya.ar/UTN/archivos/El%20lenguaje%20de%20programacion%20Csharp.onglasses.com/doc/17812628/Manual-de-C-SQL-Server-Paso-a-Paso http://melca.  CHARTE. España.canalvisualbasic.3.microsoft. H & DEITEL. Primera edición.com/es-es/library/zkxk2fwf%28v=vs.programacionfacil. 2007. Páginas WEB (webgrafía) http://msdn. P.net/manual-net/c-sharp/ http://www. Bibliografía Complementaría:  DEITEL. Bibliografía Básica:  SANCHEZ.pdf http://www.com/Tutorial.

com. 07-2912042. Mayo del 2013 . DATOS DEL DOCENTE: Mariuxi Paola Zea Ordoñez Master en Educación Superior.com 11.com/watch?v=DHcyUM5Md94 10. FECHA DE PRESENTACION: Machala. Pasaje Teléfonos: 07-2915426. FIRMA DEL O LOS DOCENTES RESPONSABLES DE LA ELABORACIÓN DEL SYLLABUS _______________________ Mariuxi Paola Zea Ordoñez 12.youtube. Correo electrónico: mpzea@yahoo. 0939036346. 099-8228455. mpzea@hotmail.http://www. Ingeniero en Computación y Ciencias de la Informática Dirección: Calle San Martín # 4-14 entre Colón e Independencia.

UNIVERSIDAD TÉCNICA DE MACHALA FACULTAD DE INGENIERÍA CIVIL ESCUELA DE INFORMÁTICA Carrera de Ingeniería de Sistemas AUTORRETRATO Mi nombre es Jennifer Lisseth Honores Cun soy estudiante de la asignatura de Programación I. . Aprender más para así desarrollarme como persona. Mariuxi Zea. de Sistemas de la Escuela de Informática de la Facultad de Ingeniería Civil de la Universidad Técnica de Machala. puntual Mis metas son llegar a convertirme un gran profesional de Ingeniería de Sistemas para así poder ejercer mi profesión. cumplir mis metas y propuesta porque nada es imposible en esta vida ya que todo es posible solo hay que ponerle fuerza de voluntad y teniendo como principal fuente de apoyo incondicional del docente Ing. Soy una persona responsable. actualmente curso el Quinto Semestre en la carrera de Ing.

La Primavera Provincia: El Oro Cantón: Machala Parroquia: Machala Referencia: Dirección: Sexo: Femenino Estado Civil: Soltero Croquis de su domicilio: Datos del Padre Apellidos y Nombres: Honores Ordoñez Pedro Luis Datos de la Madre Apellidos y Nombres: Cun Lopez Luz Emilia Donde trabaja: Dirección del trabajo: Dirección domiciliaria: Urb.: 0706418514 Edad: 18 Fecha de nacimiento: Facebook: Jennifer.es Convencional: Celular 1: 0998075497 Celular 2: Domicilio: Urb.I. La Primavera Datos del cónyuge (en caso de tenerlo) Apellidos y Nombres: Donde trabaja: Dirección del trabajo: Dirección domiciliaria: Número de hijos: Observaciones: Datos del Trabajo: (en caso de tenerlo) Donde trabaja: Renacer Dirección del trabajo: Teléfono 1: Celular: Celular: 0998431264 Celular: Sector: Teléfono 2: .UNIVERSIDAD TÉCNICA DE MACHALA FACULTAD DE INGENIERÍA CIVIL ESCUELA DE INFORMÁTICA Carrera de Ingeniería de Sistemas CURRÍCULO Apellidos: Honores Cun Nombres: Jennifer Honores Curso: Tercero Semestre: Primer Paralelo: ―A‖ Sección: Diurna C.Honores Correo electrónico: 14/09/1992 jennifer_014@hotmail.

forma y perfecciona profesionales competentes. éticos.UNIVERSIDAD TÉCNICA DE MACHALA MISIÓN La Universidad Técnica de Machala es una Institución reconocida en su área de influencia formadora de profesionales. a la solución de los problemas del desarrollo sostenible y sustentable. emprendedores. VISIÓN La Universidad Técnica de Machala para el año 2013 es una institución acreditada. que aporta. críticos y humanistas. innovadores.técnicas. vinculación y gestión. lidera el desarrollo territorial. investigación. a través de la docencia. con identidad nacional. . con capacidades científico. solidarios. creativamente.

C. . VISIÓN La carrera de Ingeniería de Sistemas para el año 2013 es la unidad acreditada y líder en el desarrollo y transferencia de soluciones informáticas. acorde a los avances científicos y tecnológicos. tecnológicas y humanísticas. técnicas.ESCUELA DE INFORMÁTICA La Escuela de Informática fue creada mediante resolución No. (Honorable Consejo Directivo) del 13 de Diciembre del 2011. competitivos y comprometidos con el desarrollo sostenible y sustentable del buen vivir. D. 452 del H. 087/1995 (25 de Octubre/1995) La Carrera de Ingeniería de Sistemas fue creada mediante resolución No. 077/2001 (7 de mayo de 2001) La Misión y Visión fueron aprobadas mediante resolución No. MISIÓN Formar profesionales en Ingeniería de Sistemas con capacidades científicas.

dirigir. analizar. en las áreas de las tecnologías de la informática y las Asesorar. de aprender y perfeccionarse con amor propio. ético con características de creatividad. . Planificar. Trabajar en equipos interdisciplinarios y proponer soluciones en forma consensuada. capacidad investigativa. intervenir y auditar proyectos informáticos. Evaluar. Identificar y definir procesos organizacionales en el ámbito en el cual se desempeñe.PERFIL PROFESIONAL El Ingeniero de Sistemas de la Universidad Técnica de Machala es un profesional con espíritu empresarial. negociar e innovar la Tecnología. innovación. diseñar e implementar Sistemas de Información. Evaluar y seleccionar los recursos humanos informáticos de acuerdo a las necesidades de la organización. con amplia sensibilidad social y con capacidad promotora de desarrollo de la comunidad donde se desempeñe y que estará capacitado para: Generar empresas comunicaciones. deseo permanente de trabajar. dirigir.

DIARIO METACOGNITIVO .

NET .UNIDAD I: INTRODUCCIÓN A .

Descriptores Analizados . ¿Por qué?  Ahora en nuestra carrea nos hacen llevar todos los apuntes en clase para después hacer refuerzo en casa.No hubieron temas de discusión solo explicación del modulo.Semana N° 1 Día 1: Clase 1 CLASE N°: TIEMPO: FECHA: DOCENTE GUÍA: TEMA DISCUTIDO: 1 2 Horas PERÍODO 06/05/2013 al 10/05/2012 06/05/2013 Ing. Datos Interesados Discutidos Actividades Durante la Clase . por lo cual hay que desarrollar diarios metacognitivos a diario ¿Qué Aprendí Hoy? . Mariuxi Paola Zea Ordoñez UNIDAD I: INTRODUCCIÓN A . .NET Contenidos  Presentación del Syllabus  Parámetros de Calificación Objetivos de Desempeño  Establecer los parámetro de calificación  Establecer las Políticas del Syllabus Competencia General  Como haremos el desarrollo del Portafolio.Entrega del Syllabus y modelo del Portafolio.Diario Metacognitivos Actividades Intraclase y Extraclase Reflexionar ¿Qué cosa fueron difíciles?  Ahora en este modulo habrá que desarrollar a diario las clases ¿Qué cosas fueron fáciles?  Las actividades Intraclase y extraclase que se van a llevar me parece que ahora ya esta mas fácil desarrollarlas.

Proyecto= 2 pts.    Tareas Investigaciones Actuaciones .APUNTES DE CLASE    El Modulo de Programación tendrá 5 créditos. actividades Intrclase y Extraclase del módulo. Examen Hemisemestre = 2 pts. Parámetros de Calificación: o o o o Examen = 3 pts. Actividades = 3 pts. En el portafolio debemos llevar Diario Metacongnitivo.

Anteriormente. Datos Interesados Discutidos Actividades Durante la Clase . por que lo crearon.Se hizo una breve descripción de C# como quien lo creo y porque lo crearon y sacar ventajas sobre este Lenguaje de Programación. ya participó en el desarrollo de otros lenguajes como Turbo Pascal. Mariuxi Paola Zea Ordoñez UNIDAD I: INTRODUCCIÓN A .NET Objetivos de Desempeño  Aprender acerca de C#. se puede definir una o más clases dentro de un mismo espacio de nombres. Se hizo una actividad Intraclase sobre un caso de estudio. . Ventajas de C#  Declaraciones en el espacio de nombres: al empezar a programar algo. J++ y Embarcadero Delphi. 2 2 Horas PERÍODO 06/05/2013 al 10/05/2012 08/05/2013 Ing.Semana N° 1 Día 2: Clase 2 CLASE N°: TIEMPO: FECHA: DOCENTE GUÍA: TEMA DISCUTIDO: Contenidos  Historia del C#.(Anexo Actividad) Descriptores Analizados  Historia de C#  Ventajas de C# Conceptos de los Descriptores Analizados Historia de C#  Hejlsberg lideró el proyecto de desarrollo de C#.  Conocer su Historia. Competencia General  Historia del C#: Quien lo Creo.  Ventajas de C#: Es conveniente usarlo.  Ventajas de C#.

C++ o Java. ¿Qué Aprendí Hoy? Quien fue el creador de C# y cuáles son las ventajas de usar C#. Reflexionar ¿Qué cosa fueron difíciles?  No se nos hizo difícil nada. ¿Por qué?  Gracias al Internet se nos hizo mucho más fácil encontrar sobre C#.Tipos de datos: en C# existe un rango más amplio y definido de tipos de datos que los que se encuentran en C.  La actividad Intraclase fue muy interesante ya que lo hicimos en grupo y después discutimos las respuestas con nuestros compañeros. APUNTES DE CLASE . ¿Qué cosas fueron fáciles?  Realizar la actividad Intraclase.

Mariuxi Paola Zea Ordoñez UNIDAD I: INTRODUCCIÓN A . Se compartió respuestas sobre preguntas acerca de C#.NET Contenidos  Evolución de los lenguajes de Programación.  Sistemas Automatizados Objetivos de Desempeño  Conocer más los lenguajes de Programación.  Aprender sobre los sistemas automatizados que existen en la actualidad Competencia General  Identifica los objetivos del lenguaje de programación C# Datos Interesados Discutidos Actividades Durante la Clase . Se compartió con los compañeros las características que se habían descritos en la espina de pescado.Semana N° 1 Día 3: Clase 3 CLASE N°: TIEMPO: FECHA: DOCENTE GUÍA: TEMA DISCUTIDO: 3 1 Horas PERÍODO 06/05/2013 al 10/05/2012 10/05/2013 Ing. - - Descriptores Analizados Creación del Lenguaje Ensamblador 1 Jan 1950 .(Anexo Actividad) La actividad intraclase se trato de hacer una espina de pescado de la evolución.Se hizo una actividad Intraclase sobre la evolución de los lenguajes de programación.

C# 1 Enero 1980 Conceptos de los Descriptores Analizados .

¿Qué cosas fueron fáciles?  Encontrar las características de los lenguajes de programación.  En una de las preguntas: ¿En qué generación ubica a C#.Reflexionar ¿Qué cosa fueron difíciles?  Al realizar la espina de pescado acerca de las fechas de creación del los lenguajes de programación. ¿Por qué? .

.  Las características de los lenguajes de programación se encontraba de manera más amplia en el internet. Entendimos en el lenguaje de Programación C# es te cuarta generación.  La pregunta de qué en que generación poníamos a C# fue tal vez la más confusa ya que si bien es cierto C# es un combinación de Java y C por lo cual estos lenguajes estaban en tercera generación. APUNTES DE CLASE En esta clase no hubo apuntes debido a que se trabajó una actividad Intraclase. pero al momento de ver sus características automatizadas se analizo y debido a esto se la clasifico como cuarta generación. ¿Qué Aprendí Hoy? . Al momento de buscar en el internet sobre las fechas de creación varían con relación a fuentes bibliográficas.Se aprendió a analizar. describir en una espina de pescado la evolución de los lenguajes de programación.

Se aprendió a usar la herramienta de Visual Estudio C#. Mariuxi Paola Zea Ordoñez UNIDAD I: INTRODUCCIÓN A . por sus siglas en inglés) para sistemas operativos Windows. y Visual Basic . Se creó proyectos de C#: Console y Aplicación de Formulario. Mariuxi Zea mediante el proyecto nos enseñaba todo lo antes mencionado. explorador de soluciones La Ing. Visual C#.Visual C# Estudio 2010 Conceptos de los Descriptores Analizados Microsoft Visual Studio es un entorno de desarrollo integrado (IDE.NET Contenidos  Introducción a Visual Estudio 2010  Creación de Proyectos en Visual Estudio 2010 con C# Objetivos de Desempeño  Conocer la Interfaz de C#  Trabajar con Visual Estudio 2010 C# Competencia General  Conoce la interfaz de C#  Aprende a trabajar en Proyectos de C# Datos Interesados Discutidos Actividades Durante la Clase . Visual J#.Semana N° 2 Día 1: Clase 4 CLASE N°: TIEMPO: FECHA: DOCENTE GUÍA: TEMA DISCUTIDO: 4 2 Horas PERÍODO 13/05/2013 al 17/05/2012 13/05/2013 Ing. Descriptores Analizados . Soporta varios lenguajes de programación tales como Visual C++. Se conoce propiedades.

APUNTES DE CLASE 1.NET) Visual F# (Apareció en Visual Studio 2010. ¿Qué Aprendí Hoy? A crear Proyectos C# mediante: Console y aplicación de formulario.NET.. ¿Por qué?  Debido a la Docente explicaba con proyector el alumno iba practicando en cada una de sus computadores y todo era más sencillo. es parecido al J#)* Reflexionar ¿Qué cosa fueron difíciles?  No hubieron temas difíciles con relación a Visual Estudio 2010 C# ¿Qué cosas fueron fáciles?  Todo quedo entendido. al igual que entornos de desarrollo web como ASP. Ingresar a Visual Estudio 2010 .NET. Versiones       Visual Basic Express Edition Visual C# Express Edition Visual C++ Express Edition Visual J# Express Edition (Desapareció en Visual Studio 2008) Visual Web Developer Express Edition (para programar en ASP.

En la ventana de cuadro de herramientas nos aparecerá todos los componentes que podemos arrastrar pero solo si es aplicación de formulario 5. La ventana de Explorador de soluciones es donde se van a almacenar todos los formularios o clases de nuestro proyecto 4. Haremos clic en crear nuevo proyecto .2. Nos aparecerá la pantalla principal de Visual Estudio 2010 3.

6. Nos pantalla

aparecerá la siguiente

7. En este espacio escribiremos el nombre, escogeremos la ubicación, y el nombre de la solución.

8.

Primero crearemos aplicación de consola 8.1. Damos clic en Aplicación de consola

8.2.

Cambiamos de nombre y damos clic en aceptar

8.3.

Nos aparecerá la siguiente pantalla

8.4.

Nos damos cuenta que este es el editor de códigos donde vamos a programar

8.5. Ahora en la ventana de explorador de soluciones nos aparecerá nuestras clases creadas.

9. Ahora crearemos una aplicación de formulario. 9.1. 9.2. Escogemos nuevo proyecto Escogemos aplicación de formulario

9.3.

Cambiamos los datos, y damos clic en aceptar

9.4.

Nos aparecerá la siguiente ventana

9.5.

En el cuadro de herramientas podemos arrastrar componentes

9.6.

Así nos quedara el formulario diseñándolo

9.7.

Si damos doble clic nos aparece el editor de código para programar

9.8. Un ejemplo vamos a dar clic en el botón guardar y nos tiene que aparecer se guardo con éxito. 9.8.1. Damos doble clic en el botón guardar 9.8.2. Nos aparecerá la siguiente ventana

9.8.3. En el método ―prívate void button1_Click (Object sender, EventArgs e)‖ escribimos la línea de código para el mensaje. Quedando así:

9.9. ventana podemos cambiar las propiedades de cada componente

En esta

9.10. Damos clic en depuración o pulsamos la tecla F5 para ejecutar la aplicación. 9.11. Esta es la ventana que nos aparece.

9.12. Al dar clic en el botón guardar nos aparecerá lo siguiente porque ya lo habíamos cambiado en el punto (9.8.3)

10. Así ya hemos creado proyectos tipo consola y aplicación de formulario.

UNIDAD II: BASE DE DATOS SQL Y ADO .NET

Mariuxi Zea mediante el proyecto nos enseñaba a crear las conexiones 1.Visual Estudio 2010 Base de datos en Visual Studio 2010 Conceptos de los Descriptores Analizados Visual Studio proporciona herramientas para conectar la aplicación a datos de muchos orígenes diferentes. Mariuxi Paola Zea Ordoñez UNIDAD II: BASE DE DATOS SQL Y ADO .La Ing. Las conexiones a datos se . como bases de datos.NET PERÍODO 20/05/2013 al 24/05/2012 Contenidos  Visual Estudio 2010 C#   Creación de Base de datos en Microsoft Acces Base de datos en Visual Estudio 2010 C# Objetivos de Desempeño  Aprender a hacer conexiones con una base de datos y Visual Estudio 2010  Trabajar con Visual Estudio 2010 C# Competencia General  Aprende a trabajar en Proyectos de C#  Aprende a hacer Conexiones BD y C# Datos Interesados Discutidos Actividades Durante la Clase . Creamos 5 registros 3. Revisamos las conexiones mediante código para Visual Estudio 2010 C# 4. servicios y objetos. Hicimos la conexión entre la herramienta de aprendizaje con la BD Descriptores Analizados .Semana N° 3 Día 1: Clase 5 CLASE N°: TIEMPO: FECHA: DOCENTE GUÍA: TEMA DISCUTIDO: 5 2 Horas 20/05/2013 Ing. Creamos BD en Microsoft Acces 2.

2. Abrimos Microsoft Access 2. Reflexionar ¿Qué cosa fueron difíciles?  Al momento de crear conexiones de base de datos como programador uno debe saberse el código de conexión.crean mediante programación (en código).1. APUNTES DE CLASE 1. Crearemos Conexiones 2. como resultado de colocar los objetos de datos en un formulario o diseñador de componentes o a través de la finalización de uno de los asistentes de datos. Primero Crearemos la base de datos en Access 2. ¿Por qué?  Debido a que uno no solo va a crear conexiones automáticas por que no todos los lenguajes de programación no tienen esa facilidad uno aunque sea debe tener idea del código para estas conexiones. ¿Qué cosas fueron fáciles?  Conexionar la BD de manera automática. ¿Qué Aprendí Hoy? Crear conexiones con el lenguaje de Programación C# y las Bases de datos. datos Creamos una base de .

Nueva. proyecto.4. crea y se agrega al soluciones.5. 3.3. Guardamos y cerramos Access 3.2. Llenamos los campos según el tipo de dato 2.2. Seleccione Aplicación de Windows Forms y elija el botón Aceptar. 3. elija Archivo. En Visual Studio. Llenamos 5 registros 2. Abrimos Visual Estudio 2010 3.3. Dé al proyecto el nombre clientes. El proyecto clientes se Explorador de .1.

En el menú Datos. seleccione Agregar nuevo origen de datos. la ventana 4. haga clic en Siguiente. En la ventana Elegir un tipo de origen de datos. continuación. 4. haga clic en Siguiente. seleccione Base de datos y. la ventana Elegir . a continuación.2.5. En Orígenes de datos. En un modelo de base de datos.3. haga clic en Mostrar orígenes de datos.1. 4. a 4. Conectar con la base de datos Access 4.4. seleccione Conjunto de datos y.4.

4. Escogemos el Origen de datos Buscamos el archivo que creamos anteriormente 4.3.7. 4.1. selecciónela. confidenciales y haga clic en Siguiente. 4.7.6.1. .1. Acogemos nueva conexión 4. En la ventana Elegir la conexión de datos. O bien  Seleccione Nueva conexión para configurar una nueva conexión de datos.2.7.7. En la ventana Nueva conexión 4. seleccione una de estas opciones:  Si una conexión de datos a la base de datos de ejemplo PAE está disponible en la lista desplegable. En este caso la base de datos no tenía nombre de usuario ni contraseña le dejamos por defecto.7.1.1.

4. Damos clic en siguiente .9. Damos clic en ―No‖ en el cuadro 4. damos clic en siguiente 4.1.7.2. Otra vez nos aparecerá la ventana siguiente.7.4.8. siguiente Damos clic en probar conexión y nos tiene que aparecer lo 4. Damos clic en aceptar 4.10.

11. Arrastramos la taba datos hacia el formulario . Seleccionamos tablas y damos clic en finalizar 5. Una vez creada la conexión tendremos la ventana orígenes de datos con la base de datos cargada 6.4.

Al ejecutar la aplicación nos aparecerá los registros ya hechos en Access 9. Con esto podemos agregar. eliminar. Nos aparecerá la tabla como en Access 8. 10. guardar. y navegar entre los diferentes registros. Todo esto que hacemos en visual estudio 2010 se irán guardando los registros en Access .7. modificar.

Mariuxi Paola Zea Ordoñez UNIDAD II: BASE DE DATOS SQL Y ADO . Mariuxi Zea mediante el proyector nos enseñaba a crear las conexiones 1.La Ing. Creamos 5 registros 3.Visual Estudio 2010 Base de datos en Visual Studio 2010 . Creamos BD en Microsoft Acces 2. Revisamos las conexiones mediante código para Visual Estudio 2010 C# 4.NET PERÍODO 27/05/2013 al 31/05/2012 Contenidos  Visual Estudio 2010 C#   Creación de Base de datos en Microsoft Acces Conexiones de Base de datos mediante Código Objetivos de Desempeño  Aprender a hacer conexiones con una base de datos y Visual Estudio 2010  Trabajar con Visual Estudio 2010 C# Competencia General  Aprende a trabajar en Proyectos de C#  Aprende a hacer Conexiones BD y C# Datos Interesados Discutidos Actividades Durante la Clase .Semana N° 4 Día 1: Clase 6 CLASE N°: TIEMPO: FECHA: DOCENTE GUÍA: TEMA DISCUTIDO: 6 2 Horas 27/05/2013 Ing. Hicimos la conexión entre la herramienta de aprendizaje con la BD Descriptores Analizados .

Las conexiones a datos se crean mediante programación (en código). ¿Por qué?  Debido a que uno no solo va a crear conexiones automáticas porque no todos los lenguajes de programación no tienen esa facilidad uno aunque sea debe tener idea del código para estas conexiones.Conceptos de los Descriptores Analizados Visual Studio proporciona herramientas para conectar la aplicación a datos de muchos orígenes diferentes. ¿Qué cosas fueron fáciles?  Trabajar en modo diseño y hacer las pruebas con las bases de datos. como resultado de colocar los objetos de datos en un formulario o diseñador de componentes o a través de la finalización de uno de los asistentes de datos. como bases de datos. servicios y objetos. APUNTES DE CLASE . Reflexionar ¿Qué cosa fueron difíciles?  Al momento de crear conexiones de base de datos como programador uno debe saberse el código de conexión. ¿Qué Aprendí Hoy? Crear conexiones con el lenguaje de Programación C# y las Bases de datos.

dato Llenamos los campos según el tipo de . Crearemos Conexiones 2. Primero Crearemos la base de datos en Access a. Creamos una base de datos c.1. Abrimos Microsoft Access b.

Seleccione Aplicación de Windows Forms y elija el botón Aceptar. Creamos los formularios quedando de la siguiente manera . El proyecto clientes se crea y se agrega al Explorador de soluciones. proyecto. En Visual Studio. b. Abrimos Visual Estudio 2010 a.d. Dé al proyecto el nombre clientes. elija Archivo. c. Llenamos 5 registros e. Nueva. Guardamos y cerramos Access 3. 4.

con).Text. public DataRow dr.0. public OleDbDataAdapter da. ds = new DataSet(). System. System.Generic.Drawing. public Form2() { InitializeComponent(). // cargamos la variable ds (data set) con la tabla clientes da. Para todo el Formulario y la conexión a la base de datos se utilizo en la clase Form2 el siguiente código: using using using using using using using using using System.Data. // creamos la consulta a la base de datos y cargamos el data adapter da = new OleDbDataAdapter("Select * from clientes". public int fila = 0. System.Windows. // Cargamos campos .ComponentModel. System. public OleDbConnection con.Data Source=C:\Users\Usuario\Documents\Database1.OLEDB.ACE.Linq. System. System.Forms. // creamos la variable data set.Data.12.OleDb. System.Fill(ds. "Clientes").accdb"). System.5. // creamos la variable con con la conexion a la bd con el proveedor de datos con = new OleDbConnection(@"Provider=Microsoft. namespace WindowsFormsApplication5 { public partial class Form2 : Form { public DataSet ds.Collections.

Enabled = false. EventArgs e) { } private void LimpiarDatos() { textBox1.1. } private void button1_Click(object sender.Enabled = false.ToString(). if (f < 0 || uf < 0) return. button3.Enabled = true. button5. textBox5.ToString().Text = dr["Fecha_nac"]. EventArgs e) { . textBox1.mostrarDatos(fila). } private void Form2_Load(object sender.Count .ToString(). button4. EventArgs e) { LimpiarDatos().Tables["Clientes"]. textBox2.ToString().Enabled = false. textBox3. button2.Enabled = false.Clear(). button7. textBox4.Clear(). mostrarDatos(fila).ToString().Tables["Clientes"]. // Caso contrario dr = ds.Text = dr["Edad"].Tables["Clientes"].ToString().Count.Enabled = true. } private void mostrarDatos(int f) { int uf = ds. textBox5.Clear(). button3.Text = dr["Id"]. button1. mostrarDatos(fila). } private void button7_Click(object sender.Enabled = false. if (fila < 0) fila = 0. button5.Enabled = false. } private void button4_Click(object sender.Rows.Rows.Text = dr["Nombres"].Rows[f].Text = dr["Ciudad"]. EventArgs e) { fila = ds. textBox2.Clear(). } private void button6_Click(object sender. textBox6. dateTimePicker1.1. textBox3.Enabled = false.ToString().Text = dr["Apellidos"]. button6.Clear(). EventArgs e) { fila = fila .Clear().Text = dr["Genero"]. textBox4. textBox6.

apellidos. // Abro la conexion con la base de datos comando.Connection.Enabled = false.Text.ExecuteNonQuery().Text).@afec)". nombre de clientes = nom_cli string nom = textBox2.Value= ape. comando.Add(new OleDbParameter("@anom".VarChar.@aciu. // Asignando el valor de la variable nom en @anom comando. string gen = textBox6. if (fila > uf) fila = uf.Parameters.Tables["Clientes"]. EventArgs e) { // Pasar los valore de las cajas de texto a variables auxiliares int aid = int. //Añadimos el parametro comando. // Primero button7. // Ejemplo: auxiliar id = aid. // Por estandar los nombres se deben crear de acuerdo a su condicion. // Parse convierte texto a numerico. @aape.Parameters["@aciu"]. // Ejecuta el copmando Insert comando.Parameters.Add(new OleDbParameter("@agen". null). OleDbType. EventArgs e) { int uf = ds. OleDbType.Parameters["@aape"].1.fila = 0. comando. comando.Parameters["@afec"]. 15)).Close(). // Nuevo button6.Date)). fila = fila + 1. comando.VarChar. // Aceptar button5.Parameters.Text.Value= nom. OleDbType.@aeda. con la sentencia SQl y la conexion (variable con) utilizada arriba OleDbCommand comando = new OleDbCommand(sentenciaSQL. "Clientes"). // Cancelar button1. // Ultimo .Enabled = true. string ciu = textBox5. } private void button5_Click(object sender. fecha_nac) VALUES (@anom.Value= gen.Count .Parameters. edad. // Cierro la conexion con la base datos da. mostrarDatos(fila).Add(new OleDbParameter("@aeda".Connection.Text. con).Value= eda. OleDbType. OleDbType.Parameters. } private void button2_Click(object sender.VarChar. genero. // Anterior button2. button5_Click(null.Enabled = true.ToDateTime(dateTimePicker1. // creamos nuestra variable de texto que contendrá la sentencia SQL // que debe ejecutarse para Insertar el registro string sentenciaSQL = "INSERT INTO Clientes (nombres. 25)).Text.Add(new OleDbParameter("@aciu". string ape = textBox3. 25)). // Convertimos el texto a fecha DateTime fec = Convert. comando. 1)). mostrarDatos(fila).Parameters.Enabled = true.Integer)).Add(new OleDbParameter("@afec". // Creamos la variable comando que se va a ejecutar.VarChar. // Abrimos la base de datos comando. } private void button3_Click(object sender.Open(). string eda = textBox4.Add(new OleDbParameter("@aape".Parameters["@anom"]. // Siguiente button4.Enabled = true. EventArgs e) { button3.Parameters["@agen"]. comando. ciudad. comando. comando.Enabled = true.Value= fec.Text).Enabled = false.Rows.Fill(ds. comando.Parameters["@aeda"]. // creacion de variables parametros y asignacion de valores comando.Text. OleDbType. @agen.Value=ciu.Parse(textBox1.

Parameters["@agen"]. EventArgs e) { string sentenciaSQL = "DELETE FROM Clientes WHERE id = @aid". comando.Integer)).Value = gen. con la sentencia SQl y la conexion (variable con) utilizada arriba OleDbCommand comando = new OleDbCommand(sentenciaSQL. comando. //Añadimos el parametro comando.Connection.Open().Value = textBox1.Date)). OleDbType. //Añadimos el parametro comando. comando.VarChar. // Abro la conexion con la base de datos comando. 1)). // Ejecuta el copmando Insert comando. "Clientes"). // Cierro la conexion con la base datos da.Text. .Add(new OleDbParameter("@aape". ciudad = @aciu.Parse(textBox1. edad = @aeda.Parameters.Connection.Text. string gen = textBox6.Text).Integer)). // creacion de variables parametros y asignacion de valores comando. null).VarChar. OleDbType.Value = eda.Value = nom.Text.VarChar.Parameters. // Abro la conexion con la base de datos comando.Value = ape. // Convertimos el texto a fecha DateTime fec = Convert. string eda = textBox4.Fill(ds.Parameters["@afec"]. en Ultimo) } (Hacer clic private void button8_Click(object sender. apellidos = @aape. 15)). EventArgs e) { // Pasar los valore de las cajas de texto a variables auxiliares int aid = int. OleDbType.Text. comando. // Por estandar los nombres se deben crear de acuerdo a su condicion.Connection. string ciu = textBox5. genero = @agen. comando. OleDbType.Value = aid. con).Parameters.Open().Integer)). // Llamar al método clic del boton 7. OleDbType. // creamos nuestra variable de texto que contendrá la sentencia SQL // que debe ejecutarse para Insertar el registro string sentenciaSQL = "UPDATE Clientes SET nombres = @anom.VarChar. null).Parameters["@anom"].ExecuteNonQuery().Parameters.Text. "Clientes").Text). // Cierro la conexion con la base datos da. 25)).Parameters. // Asignando el valor de la variable nom en @anom // Abrimos la base de datos comando. // Ejecuta el copmando Insert comando.ToDateTime(dateTimePicker1. con la sentencia SQl y la conexion (variable con) utilizada arriba OleDbCommand comando = new OleDbCommand(sentenciaSQL. // Vuelve a cargar la tabla.Close().Add(new OleDbParameter("@aeda".Parameters. nombre de clientes = nom_cli string nom = textBox2. comando.Parameters. OleDbType. OleDbType.Add(new OleDbParameter("@afec". con). comando. fecha_nac = @afec WHERE id = @aid". comando. comando.Add(new OleDbParameter("@anom".Parameters. button7_Click(null. 25)). // Abrimos la base de datos comando. comando. // Asignando el valor de la variable nom en @anom comando.Add(new OleDbParameter("@aid".Connection.Parameters["@aid"].Value = ciu.Parameters["@aid"]. // Parse convierte texto a numerico. string ape = textBox3.Text.Add(new OleDbParameter("@agen". // Ejemplo: auxiliar id = aid.ExecuteNonQuery(). // Creamos la variable comando que se va a ejecutar.Parameters["@aape"]. // creacion de variables parametros y asignacion de valores comando. comando.button7_Click(null.Parameters["@aeda"]. OleDbType.Value = fec.Fill(ds.Parameters["@aciu"]. } private void button9_Click(object sender.Add(new OleDbParameter("@aciu".Close(). // Creamos la variable comando que se va a ejecutar.Add(new OleDbParameter("@aid".

button7_Click(null. null). } } } .

UNIDAD III: CONCEPTO DE INTERFAZ GRÁFICA DE USUARIO Y PROGRAMACIÓN EN C# .

Hubieron exposiciones de Compañeros Cada estudiante iba haciendo sus prácticas de cada tema expuesto   CheckBox CheckBoxList . Construir módulos que valida el ingreso de datos para la integridad de la información Competencia General  Identificar los métodos a programar en la construcción de un sistema    Manejar controles que se pueden utilizar para que la interfaz gráfica sea amigable.     Utilizar nombres estandarizados. Programar métodos que muestren características de bajo acoplamiento y alta cohesión. Aplicar y emplear el lenguaje C# para el desarrollo. implementación y mantenimiento de los sistemas. Crear funciones utilizando datos por valor y referencia. Mariuxi Paola Zea Ordoñez UNIDAD III: CONCEPTO DE INTERFAZ GRÁFICA DE USUARIO Y PROGRAMACIÓN EN C# PERÍODO 27/05//2013 al 31/05/2012  Principales controles  Propiedades Objetivos de Desempeño  Crear interfaces gráficas amigables y flexibles. documentación y sangría para facilitar la posterior lectura del código.Semana N° 4 Día 2: Clase 7 CLASE N°: TIEMPO: FECHA: DOCENTE GUÍA: TEMA DISCUTIDO: Contenidos  Windows Forms 7 2 Horas 29/05/2013 Ing. comentarios. Utilizar programación modular. Datos Interesados Discutidos Actividades Durante la Clase .

ListBox ListView Conceptos de los Descriptores Analizados CHECKBOX El control CheckBox de Windows Forms indica si una condición establecida está activada o desactivada. . Listbox ListView DateTimePicker.     Descriptores Analizados . Permite al usuario seleccionar uno o más elementos marcando la casilla / casillas de verificación correspondientes. Tiene dos propiedades importantes: CHECKEDLISTBOX El control CheckedListBox de los formularios Windows Forms hace casi todo lo que puede hacer un cuadro de lista y puede mostrar una marca de verificación junto a los elementos de la lista.CheckBox Check BoxList ComboBox ComboBox DateTimePicker. MonthCalendary. texto o ambas. MonthCalendary. El control CheckBox puede mostrar una imagen. Puede utilizar grupos de casillas para mostrar múltiples opciones entre las cuales el usuario puede elegir una o más.

MinDate: Esta propiedad permite establecer la fecha mínima que se puede seleccionar en el calendario. Un ejemplo de formato que se puede establecer en el propiedad CustomFormat es (las letras M están en mayúsculas): CustomFormat dd-MM-yy hh:mm:ss.Value: Esta propiedad almacena la fecha y/o hora seleccionada en el control.Format: Esta propiedad permite seleccionar el formato en el cual se debe visualizar la fecha o la hora en el control. Si se selecciona Custom la fecha se mostrara con el formato establecido en la propiedad CustomFormat. que muestra el control o también digitando manualmente. En forma predeterminada la fecha máxima es 31/12/9998. .MaxDate: Esta propiedad permite establecer la fecha máxima que se puede seleccionar en el calendario. El usuario puede elegir la fecha dando Click en una caja que muestra un calendario de donde se puede seleccionar un día determinado. . -VisibleChange: tiene lugar cuando cambia la visibilidad del control. Si se selecciona el formato Custom en la propiedad Format. el resultado será el siguiente: 06-May-10 . Propiedades: . El ingreso se realiza mediante un calendario. Control DateTimePicker Este control permite ingresar una fecha en una aplicación. estos son mostrados en el área de texto. En forma predeterminada la fecha mínima es 01/01/1753.COMBOBOX Representa un control de cuadro combinado de Windows. Una vez elegido el día y/o la hora. -ValueChange: Tiene lugar cuando el valor del control cambia. -Maximumsize: Especifica el tamaño máximo del control. .

-Minumunsize: Tamaño mínimo del control. El control muestra un calendario: una cuadrícula que contiene el número de días del mes. -Rightoleft: Indica si el componente debe dibujar del componente. -Showupdown: Indica si se muestra un cuadro de números en un lugar de una calendario desplegable para modificar el valor del control.[/size]. listBox. formularios Windows Forms). LISTBOX ListBox es un control o componente de Visual Studio 2010.Items. -Rightoleftlayout: Indica si el diseño del control es de derecha a izquierda. específicamente de tipo Aplicación de Windows Forms.Clear() este método realiza el borrado o eliminación de todo los elementos de la lista.Add() este método realiza el ingreso o el agregar de un elemento a la cuadro del cual mientras cómo se van agregando se van insertado de manera ordenada en el cuadro de texto. listBox.Items. cuando la propiedad rightleft está establecida en yes.BackColor = Color. Para obtener más información sobre el controlDateTimePicker. . de la cual forma parte de los controles comunes para crear aplicaciones. hasta el SelectedItem toma el elemento de la lista seleccionado. ordenado en columnas debajo de los días de la semana con el intervalo de fechas seleccionado resaltado Para seleccionar un mes diferente.SelectedItem.Equals() este método realiza la comparación de un elemento seleccionado dela lista realice o efectué cualquier tipo de instrucción que se codifique. -Showcheckbox: Determina si se muestra una casilla en el control. A diferencia del control DateTimePicker similar. CONTROL MONTHCALEDARY El control MonthCalendar de Windows Forms muestra una intuitiva interfaz gráfica de usuario para que los usuarios vean y establezcan información relativa a fechas. se encuentra en el cuadro de herramientas y se utiliza para poder insertar elementos. puede seleccionar más de una fecha con este control. vea DateTimePicker (Control. Principales métodos para utilizar este control: listBox. puede hacer clic en los botones de fecha a los lados de la leyenda del mes. -Modifiers: Indica el nivel de visibilidad del objeto. elegir elementos en forma de una lista del cual se van agregando o se encuentran agregadas a este dicho componente.White esta parte de código se efectúa que el fondo del cuadro donde se insertan los elementos de la lista tome un color que el programador le asigne. listBox.

List. La propiedad clave del Listview es items. ya que es la que contiene los elementos que muestra el control. APUNTES DE CLASE PASOS PARA REALIZAR UNA PRÁCTICA EN VISUAL STUDIO 2010. con un icono que identifique el tipo de elemento al que pertenecen. entre las cuales tenemos: Details. ya que permite mostrar una lista de elementos con texto. La utilidad de este componente radica en la visualización de información. el mismo que nos muestra una lista de elementos en diferentes tipos de vistas. y además de forma opcional. Reflexionar ¿Qué cosa fueron difíciles?  Todo estuvo bien explicado ¿Qué cosas fueron fáciles?  Realizar las practicas ¿Por qué?  Debido a que las Exposiciones estuvieron bien explicadas se pudieron desarrollar los talleres ¿Qué Aprendí Hoy? A usar los componentes que vienen en visual Estudio 2010. Se encuentran a disposición un total de 5 vistas diferentes para este comando. DONDE SE MOSTRARA COMO UTILIZAR CONTROLES: CHECHKBOX y CHECKEDLISTBOX Se crea un Windows Forms . LargeIcon. forma parte del cuadro de herramientas de Visual Studio. SmallIcon y Tile.LISTVIEW El componente ListView.

Arrastramos los controles desde ToolBox hasta el formulario: 3 CheckBox 6 Button 1 CheckedListBox . quedando así: Luego procedemos a asignarle propiedades a cada control del formulario: Para cambiarle el nombre a los CheckBox seleccionamos: checkBox1 y en Propiedades buscamos: y escribimos y escribimos checkBox2 y en Propiedades buscamos: y escribimos y escribimos checkBox3 y en Propiedades buscamos: y escribimos y escribimos Para cambiarle el nombre a los Button seleccionamos: button1 y en Propiedades buscamos: y escribimos y escogemos y escribimos button2 y en Propiedades buscamos: y escribimos .

lo seleccionamos y en Propiedades buscamos: y escribimos damos clic en el icono que aparece a la derecha Nos muestra este cuadro en la cual escribimos los nombres que tendrá cada CheckedListBox y finalmente damos clic en Aceptar.y escribimos button3 y en Propiedades buscamos: y escribimos y escribimos button4 y en Propiedades buscamos: y escribimos y escribimos button5 y en Propiedades buscamos: y escribimos y escribimos button6 y en Propiedades buscamos: y escribimos y escribimos Para asignarle los nombres al CheckedListBox. Nos queda así el formulario. con los nombres asignado para cada uno de los controles .

Ahora damos doble clic en: Botón color y escribimos este código Botón Apariencia y escribimos este código Botón Contar y escribimos este código Botón Desactivar Op2 y escribimos este código Botón Revisar y escribimos este código .

Botón seleccionar todos y escribimos este código COMBOBOX Se crea un Windows Forms Arrastramos los controles desde ventana de Componentes quedando asi: Textbox1= caja de texto .

using System.Text == textBox1.Drawing. using System.Collections. using System.Forms. using System. using System.Show("Hay "+comboBox1.Show("Escriba otra palabra"). using System.button 1 =fuente button 1 = llenar Combobox1 = Button2 = botón deshabiitar Button3 =boton cambiar color Ejemplo 1: using System. } } else .ComponentModel.Count+" elementos").Data.Text. using System.Generic. } else { comboBox1.Items.Text) { MessageBox. EventArgs e) { //Agregar el texto que contiene el Texbox1 al ComboBox if (textBox1. namespace ComboBoxEjemplo { public partial class Form1 : Form { public Form1() { InitializeComponent().Text != "") { if (comboBox1.Windows.Add(textBox1.Text). MessageBox.Linq.Items. } private void button1_Click(object sender.

White. } } private void button3_Click(object sender.{ MessageBox.Text = "Sin Color". } private void button2_Click(object sender.Enabled = true.Text = "Deshabilitar". EventArgs e) { //Poner el texto seleccionado en el ComboBox en el TextBox2 textBox2.Text = ""+comboBox1. } private void Form1_Load(object sender. EventArgs e) { if (button2. button2.Blue.Text == "Deshabilitar") { //Deshabilitar la selección en el ComboBox comboBox1.SelectedItem. EventArgs e) { //Cambiar la fuente comboBox1.BackColor = Color.Text == "Cambiar Color") { //Cambiar el color del ComboBox comboBox1. EventArgs e) { } private void button4_Click(object sender. EventArgs e) { if (button3.Show("El Campo está vacío"). button3. 14).Font = new Font("Arial". } } . } } private void comboBox1_SelectedIndexChanged(object sender. button3. } else { //Habilitar la selección en el ComboBox comboBox1.Text = "Cambiar Color".Enabled = false. button2.BackColor = Color.Text = "Habilitar". } else { //Cambiar el color del ComboBox comboBox1.

EventArgs e) { comboBox1.ComponentModel. class ComboItem { private int _imageIndex.DrawString(item. using System. if (item. } //Añadir instancias de la clase ComboItem //en nuestro comboBox.Bounds. e.DrawBackground().Bounds.Count) e. e. e. comboBox1.ImageIndex >= 0 && item.Text.Items.Index] as ComboItem.ForeColor). using System.Drawing. using System. new PointF(e.Width + 1. private void Form1_Load(object sender.Images[item.Top)). new SolidBrush(e.Bounds. } // en esta parte tengo el error que el nombre de la clase es ta mal o algo asi private void comboBox1_DrawItem(object sender.Generic. . comboBox1. 2)).Items. e.Data.Linq.Add(new ComboItem("Esmeraldas". namespace combobox { public partial class Form1 : Form { public Form1() { InitializeComponent(). using System.Images. 0)).Font. //luego modificar la propiedad DrawMode del ComboBox. using System.Left.Bounds.Etiqueta.} } Ejemplo2 : using System. DrawItemEventArgs e) { ComboItem item = comboBox1. y fijarla en OwnerDrawFixed.ImageSize.Items[e.Add(new ComboItem("Cuenca". } } //Ahora necesitamos crear una clase muy simple que nos permita almacenar //la etiqueta de los elementos del Combo y el índice de la imagen en el ImageList. using System.Graphics.DrawImage(imageList1.Top)).ImageIndex < imageList1.ImageIndex].Collections. using System. new PointF(e.Forms.Graphics.Items.Add(new ComboItem("Ambato". e.Windows. 1)).Left + imageList1.

} } public ComboItem(string etiqueta. } set { _imageIndex = value.private string _etiqueta.ImageIndex = imageIndex. int imageIndex) { this. arrastramos hacia el formulario el control MonthCaledary. y nos aparece la ventana de código del formulario con sus respectivos controles. } public override string ToString() { return Etiqueta. } } public int ImageIndex { get { return _imageIndex. . } set { _etiqueta = value. Una vez creada la Aplicación de Windows Foms. this. } } } MONTHCALENDARY Mostrar más de un mes en el control MonthCalendar. public string Etiqueta { get { return _etiqueta. Hacemos doble clic sobre el control MonthCalendary.Etiqueta = etiqueta.

Resultados: Al iniciar la depuración del programa se ejecuta así: .Drawing. monthCalendar1.Nos posicionamos en el método monthCalendary1. 2).CalendarDimensions = new System.Size(2. escribimos la siguiente línea de código.

elegimos la propiedad MonthlyBoldedDates. . Una vez que seleccionamos el control MonthCalendary. Mostrar en negrita una fecha(s) seleccionada(s).Debe hacer clic en la pestaña de cambiar el mes y se muestra de la siguiente manera: Y podemos observar que el tamaño del calendario es de 2x2 como lo indica el código.

Seleccionamos la fecha que deseamos que se ponga en negrita y damos clic en Aceptar.Nos aparece la siguiente ventana en la cual debemos hacer clic en Agregar. .

Como resultado podemos observar el número de la semana ubicado en la parte izquierda: . posesionándonos sobre el método del control monthCalendary escribimos la siguiente sentencia: this. Haciendo doble clic sobre el control.Como resultado podemos observar que la fecha seleccionada se encuentra en negrita: Mostrar los números de semana a la izquierda de cada semana.monthCalendar1.ShowWeekNumbers = true.

label1. Para ello.monthCalendar1.Text = this. Este código asigna la fecha seleccionada (la fecha de hoy) a la propiedad Text de la etiqueta en el formato de fecha corto. a continuación. Haga doble clic en el formulario para agregar el controlador predeterminado del evento Load en el Editor de código y agregue el siguiente código. Agregue el código siguiente al controlador del evento MonthCalendar_DateChanged. Agregue un control Label al formulario. Agregue un control MonthCalendar al formulario.Start. pero esta vez en formato de fecha largo this. Haga clic en Aplicación de Windows Forms y. con el nombre predeterminado Label1.label1. en Aceptar. con el nombre predeterminado MonthCalendar1. . Aparecerá el cuadro de diálogo Nuevo proyecto.ToShortDateString(). Cómo: Mostrar la fecha y la hora en una aplicación Para mostrar una fecha mediante un control MonthCalendar: En el menú Archivo.ToShortDateString().monthCalendar1.SelectionRange. this.Text = this.SelectionRange. Cree un controlador del evento DateChanged para el control MonthCalendar1. Este código establece la etiqueta en la fecha seleccionada. sólo tiene que hacer doble clic sobre el control en el diseñador.Start. haga clic en Nuevo proyecto.Ejemplos de cómo utilizar DateTimePicker: Mostrar fechas: Usar los controles MonthCalendar y DateTimePicker.

con el nombre predeterminado DateTimePicker1. Agregue un control Button al formulario y cambie las propiedades siguientes. y permite al usuario cambiar la hora que se muestra. cambia la hora seleccionando la hora. Agregue el código siguiente al controlador del evento Form1_Load. Cuando el formulario se abra. Haga clic en Hora actual para restablecer el control a la hora actual. Este código establece el formato d-el control para mostrar una hora.dateTimePicker1.Now. minuto o segundo y haga clic en la flecha arriba o abajo. Presione F5 para ejecutar el programa.Presione F5 para ejecutar el programa. Para mostrar la hora con el control DateTimePicker: Agregue un control DateTimePicker al formulario. Compruebe que la fecha se haya actualizado en la etiqueta.Value = DateTime. Haga doble clic en el diseñador para cambiar al Editor de código. . Cuando el formulario se abra. cambie la fecha haciendo clic en una fecha en el control MonthCalendar. Propiedad Valor Name horaActual Text Hora actual Agregue el código siguiente para establecer la hora en la hora actual. en lugar de una fecha. this.

LISTBOX La aplicación se basa en insertar nombres de colores.Para insertar elementos en la caja de texto se escribe el nombre del color a insertar. también se podrá realizar que mientras se selecciona un color se ejecuta la instrucción de cambiar el fondo de la listBox además de limpiar o eliminar los elementos de dicha lista. de los cuales se insertaran mediante un botón que realice esta acción. . Insertar elementos: .

.

.

.LISTVIEW Ejemplos: Usamos para este ejemplo. un ListView con vista tipo detallada. para mostrar la información guardada en él.

.

documentación y sangría para facilitar la posterior lectura del código. Programar métodos que muestren características de bajo acoplamiento y alta cohesión.Hubieron exposiciones de Compañeros Cada estudiante iba haciendo sus prácticas de cada tema expuesto   MaskedTextBox NotifyIcon . implementación y mantenimiento de los sistemas.Semana N° 4 Día 3: Clase 8 CLASE N°: TIEMPO: FECHA: DOCENTE GUÍA: TEMA DISCUTIDO: Contenidos  Windows Forms 8 1 Horas 31/05/2013 Ing. comentarios. Datos Interesados Discutidos Actividades Durante la Clase . Aplicar y emplear el lenguaje C# para el desarrollo. Utilizar programación modular. Construir módulos que valida el ingreso de datos para la integridad de la información Competencia General  Identificar los métodos a programar en la construcción de un sistema    Manejar controles que se pueden utilizar para que la interfaz gráfica sea amigable. Mariuxi Paola Zea Ordoñez UNIDAD III: CONCEPTO DE INTERFAZ GRÁFICA DE USUARIO Y PROGRAMACIÓN EN C# PERÍODO 27/05/2013 al 31/05/2012  Principales controles  Propiedades Objetivos de Desempeño  Crear interfaces gráficas amigables y flexibles. Crear funciones utilizando datos por valor y referencia.     Utilizar nombres estandarizados.

Inicializa una nueva instancia de la clase MaskedTextBox. Como su propio nombre lo indica el notifyicon. solo puede ser utilizado directamente sobre un control de Windows Forms. etc. es un icono de notificación que tiene sus métodos.MaskedTextBox NotifyIcon Tooltip. el control y la cadena de Texto que mostrará. eventos y propiedades las cuales pueden ser modificadas ya sea desde la ventana de propiedades o por medio de la programación correspondiente. Cuando utilizamos un ToolTip en Visual Studio. por ejemplo un TextBox. una Label. Conceptos de los Descriptores Analizados MASKEDTEXTBOX Constructor MaskedTextBox Sobrecargado. un Button. Normalmente se utilizan para ofrecer información adicional sobre el elemento seleccionado o para mostrar al usuario pequeños mensajes de ayuda". Reflexionar ¿Qué cosa fueron difíciles?  Todo estuvo bien explicado 1 Página Oficial: (http://librosweb. Descriptores Analizados . página oficial de Windows) dice: “El componente NotifyIcon de formularios Windows Forms muestra iconos en el área de notificación de estado de la barra de tareas para procesos que se ejecutan en segundo plano y que. ya que solo acepta dos parámetros.es/javascript/capitulo_8/tooltip. NOTIFYICON Según (MSDN.. no tendrían interfaz de usuario‖.html) . Tooltip Según un blog ubicado en la página de "librosweb" 1dice: ―Los tooltips son pequeños recuadros de información que aparecen al posicionar el ratón sobre un elemento. de otro modo. Tooltip.

. APUNTES DE CLASE Practica con: MASKEDTEXTBOX 1.También arrastramos el Control Label.-Para realizar este ejercicio empezamos creando un formulario WindowsForms 2.¿Qué cosas fueron fáciles?  Realizar las practicas ¿Por qué?  Debido a que las Exposiciones estuvieron bien explicadas se pudieron desarrollar los talleres ¿Qué Aprendí Hoy? A usar los componentes que vienen en visual Estudio 2010. para añadir etiqueta a los MaskedtextBox que colocaremos a continuación . 3.Luego nos dirigimos al cuadro de herramientas seleccionamos el MaskedTextBox y lo arrastramos al Formulario..

-Luego podemos dar click en ―Establecer máscara‖ o en Mask y aparecerá la siguiente ventana.-Luego realizamos el mismo procedimiento para el resto de MaskedTextBox y tendremos el siguiente formulario . Y podremos elegir cualquier formato de máscara..4.Luego añadimos la máscara con la propiedad Mask o click en la flechita del MaskedTextBox como veremos a continuación. 6. 5.

maskedTextBox1. Al hacer doble click en cada MaskedTextBox nos muestra la línea del evento void maskedTextBox1_MaskInputRejected(object sender.7.Con esto terminamos la parte gráfica y ahora procedemos al código de los MaskedTexBox.ToolTipTitle = "entrada incorrecta".Agregamos un toolTip para en este caso mostrar un mensaje al momento de que no sea válido el dato ingresado. maskedTextBox1.. toolTip1. 8. MaskInputRejectedEventArgs e) { toolTip1. .Show("solo registrar datos desde (0-9)". 2000)..Location.

2.PRACTICA CON: NOTIFYICON y TOOLTIP Pasos: 1. 3. . Ingresamos a Visual Studio y se crea un nuevo proyecto. Colocamos los componentes Boton. restaurar y ocultar 7. Para que el proyecto se lleva a cabo necesitamos 4 objetos: Un Boton. Ahora en el notifyIcon damos clic sobre una flechita superior que tiene y nos pedirá escoger un icono el cual lo podemos elegir dependiendo de la ruta donde tengamos el icono deseado. Escribimos las opciones salir. y ContextMeuStrip donde nosotros deseemos en la ventana 5. En propiedades de formulario cambiamos de titulo en Text. el NotifyIcon. Hacemos Clic en ContextMenuStrip y escribimos las opciones que aparecerán cuando este la ventana minimizada 6. ContextMenuStrip y el ToolTip 4.

En Salir ingresamos el siguiente código: .Minimized this. Lo llamamos del Botón con el método Minimizar() 12.WindowState = FormWindowState. Ingresamos el código siguiente en Restaurar. Empezamos escribimiendo un método llamado Minimizar 11. En Propiedades de NotifyIcon modificamos de la siguiente manera: 9. Ahora vamos a empezar a darle código a nuestro Programa 10.WindowState = FormWindowState.Normal 13.8. En La Sección Ocultar ingresamos el siguiente codigo: this.Show() this. this.Hide() 14.

ToolTip1.Visible = False 15.SetToolTip(Button1. Creamos un método Tip() con el código que se muestra a continuación en el formulario.NotifyIcon1. "EL MOUSE ESTA SOBRE ESTE BOTON") .

    Utilizar nombres estandarizados. Programar métodos que muestren características de bajo acoplamiento y alta cohesión. comentarios. implementación y mantenimiento de los sistemas. Aplicar y emplear el lenguaje C# para el desarrollo. Mariuxi Paola Zea Ordoñez UNIDAD III: CONCEPTO DE INTERFAZ GRÁFICA DE USUARIO Y PROGRAMACIÓN EN C# PERÍODO 03/06/2013 al 07/06/2012  Principales controles  Propiedades Objetivos de Desempeño  Crear interfaces gráficas amigables y flexibles. Datos Interesados Discutidos Actividades Durante la Clase .Hubieron exposiciones de Compañeros Cada estudiante iba haciendo sus prácticas de cada tema expuesto    PictureBox ProgressBar RadioButton . Construir módulos que valida el ingreso de datos para la integridad de la información Competencia General  Identificar los métodos a programar en la construcción de un sistema    Manejar controles que se pueden utilizar para que la interfaz gráfica sea amigable. Utilizar programación modular. documentación y sangría para facilitar la posterior lectura del código. Crear funciones utilizando datos por valor y referencia.Semana N° 5 Día 1: Clase 9 CLASE N°: TIEMPO: FECHA: DOCENTE GUÍA: TEMA DISCUTIDO: Contenidos  Windows Forms 9 2 Horas 03/06/2013 Ing.

GenerateMember Indica si se genera una varible miembro para este componente. PROPIEDADES Nombre Descripción ErrorImage Nombre Descripción Imagen que se muestra cuando falla la carga de otra imagen. lo podemos encontrar en el cuadro de herramientas y la utilizamos para mostrar imágenes.PictureBox ProgressBar RadioButton TreeView TreeView NumericUpDown GroupBox TabControl MenuStrip ContextMenuStrip NumericUpDown GroupBox TabControl MenuStrip ContextMenuStrip Conceptos de los Descriptores Analizados PictureBox PictureBox es un control de Visual Studio 2010. . la cual forma parte de los controles comunes para crear aplicaciones. específicamente de tipo Aplicación de Windows Forms.      Descriptores Analizados .

PROPIEDADES Nombre Descripción Nombre Descripción CheckAlign Determina la ubicación de la casilla dentro del control. PROPIEDADES Nombre Descripción Step Nombre Descripción Cantidad por la que aumentar el valor actual del control cuando se emplea el método PerformStep(). en el intervalo especificado por las propiedades de mínimo y máximo. Controla si el procesamiento se detendrá hasta que la imagen se cargue. Style Esta propiedad permite al usuario establece el estilo de progressbar.Image ImageLocation WaitOnLoad Imagen mostrada en el control PictureBox Disco o ubicación web desde la que carga la imagen. . RadioButton Permite al usuario seleccionar una única opción de entre una lista de opciones cuando están emparejadas con otros RadioButtons. Value Valor actual de progressbar. ProgressBar Muestra una barra que se va completando para mostrar al usuario el progreso de una operación.

a menos que la propiedad ReadOnly se haya establecido en true. El GroupBox se encuentra dentro del cuadro de herramientas del IDE Visual C#. El GroupBox muestra un marco alrededor de un grupo de controles con o sin título. Un control NumericUpDown contiene un único valor numérico que se puede aumentar o disminuir al hacer clic en los botones Arriba o Abajo del control. más específicamente en la parte donde están los contenedores: . GroupBox El cuadro de grupo es un control contenedor que puede utilizarse para definir grupos de controles. NumericUpDown Representa un cuadro de número de Windows (también conocido como control de flechas) que muestra los valores numéricos. La colección Nodes contiene todos los objetos TreeNode asignados al control TreeView. Generalmente se Utiliza un GroupBox para agrupar de forma lógica una colección de controles en un formulario. A los nodos de árbol de esta colección se les conoce como los nodos de árbol raíz. TreeView Muestra una colección jerárquica de elementos con etiquetas. Indica si el botón de TextAlign Alineación del texto que se mostrar en el control. representado cada uno por un TreeNode. Un contenedor de componentes es una clase especializada que actúa como medio para organizar y contener componentes.Checked radio esta activado o no. Cualquier nodo de árbol que se agregue posteriormente a un nodo de árbol raíz se conoce como nodo secundario. El usuario también puede escribir un valor.

. Una ficha actúa como otra forma que puede albergar otros controles. MenuStrip Añade una barra de menú en su programa de Windows Forms. Se demuestra la MenuStrip y ofrecemos algunos consejos de uso. Font: sirve para asignarle un tipo y tamaño de letra al control. a continuación añadimos los menús predeterminados o crear menús personalizados directamente en Visual Studio. se añade un área de menú y. Con este control. Cursor: sirve para elegir el tipo de cursor que se va a visualizar en el control. BackgroundImageLayout: sirve para ajustar la imagen colocada en el control. Enabled: sirve para bloquear o desbloquear al control de acuerdo al valor booleano que se le dé. Forecolor: sirve para cambiar el color de letra en el control. Text: sirve para colocarle un título al control. Tabcontrol Ventanas TabControl es un control útil que permite mostrar varios cuadros de diálogo de pestañas en una única forma de cambiar entre las pestañas.Principales propiedades del GroupBox: Backcolor: sirve para colocarle un color de fondo al control. BackgroundImage: sirve para colocar una imagen de fondo al control.

las imágenes se almacenan en un archivo de recursos. además de un título textual. Debido a varios casos de control diferentes a menudo utilizan la misma imagen. Por el contrario. al igual que controla los eventos para otros controles. Imagen Un elemento de menú puede mostrar una imagen. como la alineación y orden de texto e imágenes. Controlar de forma coherente los eventos para todos los contenedores y los elementos contenidos.Entre las principales características de este objeto tenemos las siguientes: Crear fácilmente menús personalizados y comúnmente empleados compatibles con la interfaz de usuario avanzada y con las características de diseño. operaciones de arrastrar y colocar. desbordamiento y modos alternativos de acceso a comandos de menú. . Compatibilidad con el comportamiento y aspecto típico del sistema operativo. Imágenes se añaden a un archivo de recursos utilizando el cuadro de diálogo Seleccionar recurso se muestra en la siguiente figura. las imágenes no se almacenan en la instancia del control en sí. MDI.

Los menús contextuales proporcionan opciones para el área de cliente o el control en la ubicación del puntero del mouse.Ilustración 1 Asignación de Iconos a ítems ContextMenuStrip Los menús contextuales aparecen en la posición del mouse (ratón) cuando el usuario hace clic con el botón secundario. Reflexionar ¿Qué cosa fueron difíciles?  Todo estuvo bien explicado ¿Qué cosas fueron fáciles?  Realizar las practicas ¿Por qué?  Debido a que las Exposiciones estuvieron bien explicadas se pudieron desarrollar los talleres ¿Qué Aprendí Hoy? .

2 Button 1 PictureBox . Luego agregamos los componentes que se va a utilizar del toolbox hacia el formulario. APUNTES DE CLASE Practica: PICTUREBOX 1.- A usar los componentes que vienen en visual Estudio 2010. Creamos un nuevo proyecto 2.

.3 Luego procedemos a asignarle propiedades a cada control del formulario: Para cambiarle el nombre a los Button seleccionamos: button1 y en Propiedades buscamos:   Button2 y en Propiedades buscamos:   y escribimos y escribimos y escribimos y escribimos Picturebox1 y en Propiedades buscamos:  4 y escribimos Para asignarle las imágenes al pictureBox debemos dar click en la parte superior derecha del mismo control.

5

Ahora procedemos a codificar los eventos:

Practica:

PROGRESSBAR
1. Repetimos los pasos 1 y 2 ya descritos anteriormente.

2. Luego procedemos a asignarle propiedades a cada control del formulario: Para cambiarle el nombre a los Button seleccionamos: button1 y en Propiedades buscamos:   button2 y en Propiedades buscamos:   button2 y en Propiedades buscamos:  textBox1 y en Propiedades buscamos:  y escribimos y escribimos y escribimos y escribimos y escribimos y escribimos

3. Ahora procedemos a codificar los eventos:

Practica:

RADIOBUTTON
1. Repetimos los pasos 1 y 2 ya descritos anteriormente.

2. Luego procedemos a asignarle propiedades a cada control del formulario:

Para cambiarle el nombre a los RadioButton seleccionamos: Radiobutton1 y en Propiedades buscamos:   y escribimos y escribimos

Radiobutton2 y en Propiedades buscamos:   y escribimos y escribimos

Button1 y en Propiedades buscamos:   y escribimos y escribimos

Label1 y en Propiedades buscamos:  y escribimos

4. Ahora procedemos a codificar los eventos:

PRACTICA CON:

TREEVIEW
A continuación se desarrollara un ejemplo haciendo uso del TreeView: 1. Se crea un nuevo proyecto de tipo Aplicación de Windows Forms. 2. Se arrastra hacia la ventada del diseñador el control TreeView.

3. Se arrastra hacia la ventana del diseñador un ImageList para poder almacenar los iconos del TreeView.

4. Agregamos imágenes al ImageList, desde la ventana de Tareas del ImageList seleccionamos Elegir imágenes y rápidamente se nos presentara el Editor de la colección Imágenes en donde agregaremos las imágenes que deseemos dando clic en el botón Agregar.

5. Desde la ventana de Tareas de TreeView le agregamos el ImageList

6. Desde la ventana de Tareas de TreeView elegimos la opción Editar nodos, en donde tendremos el Editor de TreeNode, en donde tendremos la opción de agregar nuevos nodos de tipo raíz y secundario según sea la aplicación y al mismo tiempo desde el menú de propiedades se podrá colocar una imagen de ImageList al Nodo, una ves agregados los nodos deseado aceptamos para guardar los cambios

7. Agregamos tres botones a nuestra ventana, los cuales cumplirán las funciones de Agregar Nodo, Eliminar Nodo y Eliminar Node

8. Procedemos a codificar los eventos para cada uno de los botones.

un mínimo y un incremento. 2. Ejecutar la aplicación y comprobar resultados. Se arrastra hacia la ventada del diseñador el control NumericUpDown. Se crea un nuevo proyecto de tipo Aplicación de Windows Forms. Desde la ventana de propiedades modificamos los valores del NumericUpDown del tal manera que establecemos un máximo. . 3.9. PRACTICA CON: NUMERICUPDOWN Ejemplo de aplicación del NumericUpDown y algunas de sus propiedades: 1.

5. otro para poder limpiar los TextBoxs y otro para poder agregar nuevos valores a las propiedades y 4 Textboxs. Agregamos 3 botones que nos permitirán capturar las propiedades actuales del NumericUpDown como máximo. mínimo e incremento. Codificamos los eventos de los botones. .4.

PRACTICA CON: CONTEXTMENUSTRIP Pasos para usar un ContextMenuStrip:  Abrimos el visual estudio 2010  Creamos un nuevo proyecto  De la barra de herramientas arrastramos textbox.6. label y botones hasta que nos quede el formulario de esta forma . Ejecutar la aplicación y verificar resultados.

y nos aparecera la herrameinta seleccionada. En mi caso mi programa es sobre la suma.  Para poder activar el menú median otro objeto. multiplicacion y division de dos numeros. lo que tenemos que hacer es seleccionar el objeto en nuestro caso es el botón ―Elija lo que desea calcular‖. A continuación vamos al cuadro de herramientas y en ―Menús y barras de Herramientas‖ seleccionamos la opción ContextMenuStrip  Una ves seleccionada la opcion lo insertamos en el formulario. y en las propiedades buscamos la propiedad siguiente:  Al hacer esto estamos diciendo que al darle clic derecho al botón se nos presente el ContextMenuStrip con las opciones que . resta. Le ponemos el nombre en el recuadro que dice ―Escribe aqui‖ según lo que deseamos hacer en este menu.

using System. using System. using System. using System.ComponentModel.Collections.Text.Generic. using System. using System.  Lo siguiente que haremos es programar cada una de las opciones.Drawing. . esto lo hacemos de la misma forma que programar en un botón.Data.  Le damos doble clic en la opción para que nos aparezca la ventana de código.Linq.Windows. CÓDIGO DEL EJERCICIO SOBRE ContextMenuSTrip using System. namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent().pusimos en los pasos anteriores.Forms. using System.

} else { int numerouno = Convert.Text). int resp = (numerouno * numerodos). } } private void rESTAToolStripMenuItem_Click(object sender.ToInt32(textBox2. EventArgs e) .ToInt32(textBox1.ToInt32(textBox2. EventArgs e) { if (textBox1.Text == "") { MessageBox. textBox5. textBox4.Text == "" || textBox2.Text).Text == "") { MessageBox.ToInt32(textBox2.ToInt32(textBox1.Text).Text == "" || textBox2.Text == "") { MessageBox.Text = Convert.Show("Tiene que llenar todos los campos"). int numerodos = Convert.Text). int numerodos = Convert. } } private void dIVICIONToolStripMenuItem_Click(object sender. int numerodos = Convert. int resp = (numerouno + numerodos).Text = Convert.ToInt32(textBox1.Text == "" || textBox2. EventArgs e) { if (textBox1. textBox3. EventArgs e) { if (textBox1.ToString(resp). int resp = (numerouno . } else { int numerouno = Convert.Text).} private void cerrarToolStripMenuItem_Click(object sender.ToString(resp). } } private void mULTIPLICACIONToolStripMenuItem_Click(object sender.Text = Convert. } else { int numerouno = Convert.ToString(resp).Text).Show("Tiene que llenar todos los campos").numerodos).Show("Tiene que llenar todos los campos").

ToString(resp).ToInt32(textBox1. textBox1. int numerodos = Convert. textBox6.Clear(). textBox5. EventArgs e) { } } } .Text == "") { MessageBox.Clear().Text = Convert. int resp = (numerouno / numerodos). } private void sALIRToolStripMenuItem_Click(object sender.Clear(). } private void button2_Click(object sender. textBox6.Close(). } else { int numerouno = Convert.Text).{ if (textBox1.Clear(). textBox2. } } private void lIMPIARDATOSToolStripMenuItem_Click(object sender.Text).Focus().Clear(). EventArgs e) { this.Text == "" || textBox2. textBox4.Show("Tiene que llenar todos los campos").Clear(). textBox3. EventArgs e) { textBox1.ToInt32(textBox2.

el tamaño y el color del texto en las propiedades: Font y forecolor. En la propiedad Font nos aparecerá un ventanita como esta para la modificación antes dicha.PRACTICA CON: GROUPBOX El presente formulario ha sido desarrollado para indicar las propiedades más importantes o más relevantes de este contenedor llamado GroupBox: Lo primero que debemos hacer es crear un nuevo Proyecto: Windows Forms. . Modificamos la fuente. arrastrar el control o contendor GroupBox y colocarlo en el formulario.

Mientras que en la propiedad forecolor nos aparcera los diferentes colores que le podemos colocar al contenedor. Lo siguiente que debemos hacer es agregar los componentes al contendor GroupBox. añadiendo cajas de texto. etiquetas y un botón. Ahora para poderle cambiar el color de fondo al contendor nos vamos a la propiedad BackColor y nos aparecerá un cuadro similar al anterior y seleccionamos el color que deseemos. de tal manera que nos queda de esta forma: .

respectivamente. Además cabe recalcar que si no se llenan todas las cajas de texto la información no se llenara en la parte inferior y además mostrara un mensaje de error. procedemos a darles funciones a los botones que existen en dicho formulario: Botón enviar El botón enviar nos va a servir para enviar la información o el texto que se encuentra dentro del GroupBox a la parte inferior de la ventana donde se encuentran las etiquetas que no contienen ningún texto. mientras que a los botones les colocamos en la propiedad Text: Desbloquear y Cancelar. procedemos a darle doble clic al botón y escribimos dentro del método lo siguiente. agregamos 6 etiquetas y 2 botones. Para colocarle el código al botón y me realice las funciones antes mencionadas. . A las etiquetas le borramos el texto de tal manera que esa propiedad Text quede vacía. Una vez que nos haya quedado el formulario de esa forma.En la parte inferior de la ventana.

Así mismo le damos doble clic a dicho botón y le colocamos el siguiente código: Botón Cancelar El botón cancelar va a servir para bloquear el contenedor GroupBox y sus componentes que se encuentran adentro. además de desbloquear el botón desbloquear. Y también dejar en blanco las etiquetas que se encuentran en la parte inferior de la ventana. Para que el botón cumpla dichas funciones le damos doble clic y escribimos el siguiente código en el método: .Botón Desbloquear El botón desbloquear va a permanecer bloqueado y una vez que se encuentre desbloqueado va a cumplir la función de desbloquear el GroupBox y sus componentes que están adentro una vez que el botón cancelar lo haya bloqueado. Además de limpiar las cajas de texto del GroupBox.

y es ahí cuando surgen las interrogantes. ¿Podre cambiar el nombre de mis pestañas de mi TabControl?. Una vez ubicados en la opción TabControl la arrastramos hacia la ventana donde deseamos usar el TabControl una vez arrastrado nos quedara algo más o menos así: Por Default nos aparecerá dos pestañas con el nombre TabPage1 y TabPage1. Agregar y Quitar pestañas de mi TabControl Lo explicare gráficamente como con código. Procederé a explicar cómo agregar o quitar pestañas de mi TabControl asi como a cambiar el nombre de las pestañas de mi tabControl de la misma manera revisaremos las demás propiedades. . nos ubicamos en el cuadro de herramientas y buscamos la opción TabControl. ¿Podre poner o quitar pestañas a mi TabControl?. Pues la respuesta es que sí.PRACTICA CON: TABCONTROL ¿Cómo Crear un TabControl en mi Ventana? Una vez creado nuestro proyecto. así que gráficamente para agregar pestañas o quitarlas le damos clic a la flecha que se encuentra en la parte superior del TabControl y se nos despliegan las opciones agregar y quitar ficha dándole clic se procederá agregar o quitar según como nosotros lo manejemos.

en este método procederé añadir lo siguiente: Private void crearPestana() { // Creo una nueva Pestaña TabPage nuevaPestana = new TabPage("Nueva Pestaña " + contarPestana). // Creamos una nueva pestaña . de esta manera podemos eliminar pestaña por medio de índice de esta variable y la sintaxis quedaría así: int contarPestana = 0. nos quedara algo más o menos así: Entonces comenzamos a programar los eventos de los botones respectivamente cuando yo presione agregar pestaña se me agregué una pestaña a mi tabControl y así respectivamente con el eliminar pestaña. Nos ubicaremos en el modo programador. con esto tendremos control sobre la pestaña a tenerla almacenada y el código para declarar un arrayList quedaría así: ArrayList pestana = newArrayList().Ahora procederé a eliminar las pestañas del TabControl y agregare dos botones donde el uno tenga como texto agregar pestaña y el otro eliminar pestaña. como lo hacemos damos doble clic sobre la ventana y nos aparecerá el código y entonces debemos escribir la librería: using System.Collections. //Es la que nos permite manejar las pestañas en modo de arrayList Declaramos un arrayList yo utilizare el nombre pestana el objeto pestana se encarga de almacenar cada pestaña. lleva un control sobre la cantidad de pestaña que llevamos almacenado en el objeto pestana. Lo siguiente que realizare será declarar una variable int con el nombre contarPestana. la variable contarPestana. Ahora voy a crear el método crearPestana() como su nombre indica es para crear pestaña en tiempo de ejecución.

//variable que lleva el control de la cantidad de pestaña creada tabControl1. luego marco la pestaña recién creada como seleccionada mediante las propiedades de TabControl. //cargamos la pestaña en el control contarPestana++. // cada pestaña creada los añadimos en un arraylist tabControl1.Add(nuevaPestana). tendremos un código así: . //seleccionamos la pestaña } Lo que realizo en el código es primero crear un TabPage que no es más que una pestaña por medio de constructor de objeto le pasamos en título que queremos que tenga la pestaña.SelectedTab le paso la pestaña recién creada. y tendremos algo más o menos así: Ejecutando podremos observar que nuestro trabajo puede hacer esto: Ventana de inicio (ventana como se ejecuta inicialmente) Una vez presionando agregar pestana (procedí a agregar 2 pestañas) Procederé a trabajar con el eliminar pestaña. Incremento la variable contarPestana. Una vez que eh creado una pestaña guardo esa pestaña con su título en el ArrayList pestana luego cargo esa pestaña en el control TabControl1 (es el nombre de mi tabControl). Luego nos vamos al modo diseñador y damos doble clic sobre el botón crear pestaña y dentro del evento coloco el nombre del método. ósea llamo al método crearPestana.SelectedTab = nuevaPestana.TabPages.Add(nuevaPestana).pestana.

using System.TabPages. //cargamos la pestaña en el control contarPestana++. pestana. //seleccionamos la pestaña } private void EliminarPestana() { if (contarPestana <= 0) { MessageBox. using System. pestana. entonces el código completo quedaría así: using System. } private void crearPestana() { // Creo una nueva Pestaña TabPage nuevaPestana = new TabPage("Nueva Pestaña " + contarPestana). int contarPestana = 0.Remove(vacio).Add(nuevaPestana).TabPages.Remove(vacio).Remove(vacio). contarPestana--.SelectedTab. Luego elimino las pestaña de las lista.Data. } Como se ve el código del método es bastante corto. //Es la que nos permite manejar las pestañas en modo de arrayList namespace WindowsFormsApplication1 { public partial class Form1 : Form { ArrayList pestana = new ArrayList(). using System.TabPages. } } . tabControl1. // cada pestaña creada los añadimos en un arraylist tabControl1.SelectedTab. contarPestana--. using System. using System. using System. using System.Add(nuevaPestana). //variable que lleva el control de la cantidad de pestaña creada tabControl1. primero creamos un TabPage vació. public Form1() { InitializeComponent(). tabControl1. // Creamos una nueva pestaña pestana.Text. y le paso la pestaña que tengo seleccionada para eliminar.ComponentModel.Remove(vacio).SelectedTab = nuevaPestana.Collections. } else { TabPage vacio = tabControl1.Windows. El código mejorado poniéndole al eliminar pestaña un controlador de que cuando no se agregado pestañas y se quiera eliminar mostrar un mensaje. y también de TabControl1 y por últimos restamos un -1 a la variable contarPestana.private void EliminarPestana() { TabPage vacio = tabControl1.Generic.Forms.Linq.Collections. using System.Show("No ahi como eliminar porque no se agregado pestañas").Drawing.

EventArgs e) { EliminarPestana(). } public string mbox { get. } private void button2_Click(object sender. EventArgs e) { crearPestana(). } } } Ahora probaremos si funciona. Aquí eh agregado 3 pestañas Aquí eliminare la pestaña 1 .private void button1_Click(object sender. esto permite que el programa no se cuelgue. Si no se agregado pestañas y se desea eliminar se muestra un mensaje. set.

Multiline: Al ponerla true permite que si son bastantes pestañas las alinee. la ventana del Editor de la colección Pages Tab se abrirá donde usted puede añadir y eliminar páginas con pestañas y también se puede establecer estas páginas de propiedades y eventos de ficha. Al hacer clic en las colecciones. Font: Permite personalizar el tipo y tamaño de letra ItemSize: Permite modificar el tamaño del tabPage Size: permite modificar el tamaño de nuestro tabControl TabPage: permite personalizar por separado cada una de nuestras pestañas. Al igual que cualquier otra colección.Propiedades TabControl La forma más sencilla para establecer las propiedades es de la ventana Propiedades. TabPages Propiedad TabPages. Appeance: podemos cambiar la apariencia de nuestro tabControl Dock: le da la posición dentro de nuestra ventana. eliminar y buscar. TabPageCollection tiene toda la funcionalidad de colección que incluye agregar. Puede abrir la ventana Propiedades presionando F4 o haga clic derecho en un control y seleccione la opción del menú Propiedades. Entre las propiedades más importantes tenemos: Name: Indica el nombre con el que vamos a manejar nuestro tabControl. un tipo de objeto TabPageColleciton es la puerta de acceso y agregar páginas de fichas a un TabControl. haga clic en TabPagesCollection. . Podemos añadir y acceder a páginas de fichas de TabControl en tiempo de diseño de la ventana Propiedades.

Luego el siguiente paso es cargar esas imágenes a nuestro TabControl de la siguiente manera lo hare. que nos permitirá guardar nuestras imágenes.En las propiedades más importantes tenemos: Name: Nombre con el que se manejara esa pestaña BackColor: Imagen de fondo de la pestaña. BackgroundImageLayout: permite ubicar la imagen como nosotros deseemos. luego en las propiedades del ImageList buscamos la opción Images y se nos abrirá una ventana al seleccionarla. Como poner un icono o imagen al TabPages Primero arrastramos desde el cuadro de herramientas hasta nuestra ventana un Imagelist. BackgroundImage: Nos permite poner una imagen de fondo a la pestaña. Me ubico en las propiedades del TabControl y busco la opción ImageList y selecciono mi ImageList que arrastre a mi ventana yo la tengo con nombre ImageList1 . BorderStyle: permite poner un estilo de borde a la pestaña Cursor: Permite definir el tipo de cursor que deseemos usar dentro de la pestaña Font: el tipo y tamaño de letra dentro de la pestaña ForeColor: el color de las letras dentro de las pestañas ImagenIndex: Permite poner una imagen como icono (procederé a explicar más adelante) Text: Permite poner un nombre a nuestra pestaña. Ahí podremos agregar o quitar imágenes.

El resultado final es: .Luego dentro del modo diseño selecciono la pestaña que deseo ponerle el icono y dentro de las propiedades del TabPages busco la opcion ImageIndex (es donde se encuentran nuestras imágenes cargadas en el ImageLis). Luego desplegamos y escogemos la imagen deseada. Puedo ponerle icono a todas mis pestañas.

Hubieron exposiciones de Compañeros Cada estudiante iba haciendo sus prácticas de cada tema expuesto   Tool strip Status strip . Programar métodos que muestren características de bajo acoplamiento y alta cohesión. Aplicar y emplear el lenguaje C# para el desarrollo. comentarios. Utilizar programación modular. implementación y mantenimiento de los sistemas. Mariuxi Paola Zea Ordoñez UNIDAD III: CONCEPTO DE INTERFAZ GRÁFICA DE USUARIO Y PROGRAMACIÓN EN C# PERÍODO 03/06/2013 al 07/06/2012  Principales controles  Propiedades Objetivos de Desempeño  Crear interfaces gráficas amigables y flexibles.Semana N° 5 Día 2: Clase 10 CLASE N°: TIEMPO: FECHA: DOCENTE GUÍA: TEMA DISCUTIDO: Contenidos  Windows Forms 10 2 Horas 05/06/2013 Ing. Construir módulos que valida el ingreso de datos para la integridad de la información Competencia General  Identificar los métodos a programar en la construcción de un sistema    Manejar controles que se pueden utilizar para que la interfaz gráfica sea amigable.     Utilizar nombres estandarizados. Datos Interesados Discutidos Actividades Durante la Clase . Crear funciones utilizando datos por valor y referencia. documentación y sangría para facilitar la posterior lectura del código.

      Descriptores Analizados - Tool strip Status strip Timer ErrorProvider ColorDialog

Timer ErrorProvider ColorDialog FolderBrowserDialog OpenFileDialog SaveFileDialog

FolderBrowserDialog OpenFileDialog SaveFileDialog

Conceptos de los Descriptores Analizados

TOOL STRIP Según (Ferguson, 2010) Este control proporciona una barra de herramientas en la interfaz de usuario, lo arrastramos de la misma manera que el control anterior, al formulario; luego se puede observar cómo se aparece una barra de herramientas en la parte superior.

STATUS STRIP
Según (Microsoft, 2013) ―StatusStrip reemplaza el control StatusBar. Las características especiales de StatusStrip incluyen un diseño de tabla personalizada, compatibilidad con los controles de tamaño y movimiento del formulario y con la propiedad Spring, que permite que ToolStripStatusLabel rellene automáticamente espacio disponible. TIMER

El componente Timer es un temporizador basado en servidor que permite especificar un intervalo recurrente en el que se provoca el evento Elapsed en la aplicación. Entonces, se puede controlar este evento para proporcionar un procesamiento normal. Por ejemplo, supongamos que un servidor crítico debe mantenerse en funcionamiento las 24 horas del día y los 7 días de la semana. Puede crearse un servicio que utilice Timer para comprobar periódicamente el servidor y asegurarse de que el sistema se encuentra en funcionamiento. Si el sistema no responde, el servicio podría intentar reiniciar el servidor o notificárselo a un administrador. El Timer basado en servidor está diseñado para utilizarlo con subprocesos de trabajo en un entorno multiproceso.

ERRORPROVIDER ErrorProvider presenta un mecanismo simple para indicar al usuario final que un control de un formulario tiene un error asociado. Si se especifica una cadena de descripción de error para el control, se muestra un icono junto a éste. El icono parpadea de la manera que especifica BlinkStyle, con la frecuencia que especifica BlinkRate. Cuando el mouse (ratón) pase por encima del icono, se mostrará la información sobre herramientas con una cadena de descripción del error. Normalmente, ErrorProvider se utiliza con controles enlazados a datos. Si utiliza ErrorProvider con controles enlazados a datos, debe especificar la propiedad ContainerControl en el constructor o estableciendo la propiedad ContainerControl.

COLORDIALOG Representa un cuadro de diálogo común que muestra los colores disponibles, así como los controles que permiten a los usuarios definir colores personalizados. Se debe invocar al miembro heredado ShowDialog para crear este cuadro de diálogo común específico. Se utiliza Color para recuperar el color seleccionado por el usuario. Cuando se crea una instancia de ColorDialog, se establecen algunas propiedades de lectura y escritura en sus valores iniciales. Para obtener una lista de esos valores, vea el constructor ColorDialog. FOLDERBROWSERDIALOG Con frecuencia, en las aplicaciones para Windows que cree, deberá pedir a los usuarios que seleccione una carpeta; en la mayoría de los casos para guardar un conjunto de archivos. El componente FolderBrowserDialog de formularios Windows Forms permite realizar esta tarea con facilidad. OPENFILEDIALOG OpenFileDialog permite a los usuarios navegar por las carpetas y seleccione los archivos. Está disponible en Windows Forms y se puede utilizar con el código C #. Se muestra el cuadro de diálogo estándar de Windows. Los resultados de la selección se pueden leer en el código C #.

SAVEFILEDIALOG El componente SaveFileDialog permite a los usuarios examinar el sistema de archivos y seleccionar los archivos que deseen guardar. El cuadro de diálogo devuelve la ruta de acceso y el nombre del archivo que seleccionó el usuario en el cuadro de diálogo. Sin embargo, debe escribir el código para escribir realmente los archivos en el disco. Reflexionar ¿Qué cosa fueron difíciles?  Todo estuvo bien explicado ¿Qué cosas fueron fáciles?  Realizar las practicas ¿Por qué?  Debido a que las Exposiciones estuvieron bien explicadas se pudieron desarrollar los talleres ¿Qué Aprendí Hoy? A usar los componentes que vienen en visual Estudio 2010. APUNTES DE CLASE Práctica con la herramienta:

TOOL STRIP
Se crea un Windows Forms

Arrastramos los controles desde ToolBox hasta el formulario: 1 toolStrip1 1 Button 1 richTextBox1 Luego procedemos a insertar los elementos estándar

Cambiamos el valor por defecto de la propiedad CheckOnClick a true

Ahora damos doble clic en: Botón de ayuda y escribimos este código

Botón Nuevo y escribimos este código

Botón Abrir y escribimos este código

Botón Guardar y escribimos este código

Botón agregar item y escribimos este código

Práctica con la herramienta:

STATUS STRIP
Arrastramos la propiedad Status Strip.

Y nos queda así:

Seleccionamos StatusLabel

Ahora seleccionamos un ProgressBar

Le cambiamos el nombre al StatusLabel:

Y nos queda así:

Lo usado en statusStrip

El método barra para que cada vez que llame al método el statusLabel creado cambie al especificado y el progressBar también.

El Timer lo encontramos en la barra de herramientas y nos ayuda con la herramienta de progressBar y en el if indicamos que ProgressBar va a incrementar de 2 en 2 hasta completar el máximo y asi se muestra y presenta el mensaje. Código de toda la práctica:
using System; using System.Collections.Generic; using System.ComponentModel;

} private void ayudaToolStripButton_Click(object sender. using System. Properties. EventArgs e) { MessageBox.Show(String.Add("Nuevo Boton".exit).Text. using System.using System. using System.Data. public Form1() { InitializeComponent(). EventArgs e) { toolStrip1. namespace WindowsFormsApplication13 { public partial class Form1 : Form { String nombre.Forms.ToString())).Linq.Resources.Windows.Format("checked: (0)".Items. } private void guardarToolStripButton_Click(object sender. using System. } private void button1_Click(object sender.IO.Drawing. ayudaToolStripButton. EventArgs e) . using System.

Value = 0. } private void abrirToolStripButton_Click(object sender.Text = sr. f. EventArgs e) { barra(). sw.Close(). nombre = f. StreamReader sr = new StreamReader(nombre).Text). } private void Form1_Load(object sender. EventArgs e) { OpenFileDialog f = new OpenFileDialog(). StreamWriter sw = new StreamWriter(nombre.Close().ReadToEnd(). sr. txt.true).{ toolStripProgressBar1. barra(). sw. txt.FileName.Value = 0.Text = "". nombre = "". EventArgs e) { toolStripProgressBar1. barra(). } private void nuevoToolStripButton_Click(object sender.ShowDialog(). } public void barra() .WriteLine(txt.

timer1.{ toolStripStatusLabel1. EventArgs e) { toolStripProgressBar1. MessageBox. toolStripProgressBar1.".Por favor espere"..Enabled = true. timer1. toolStripStatusLabel1. timer1. timer1.Interval = 50. if (toolStripProgressBar1..Maximum) { timer1...Value = toolStripProgressBar1. EventArgs e) { toolStripProgressBar1.Text = "Cargando.Minimum = 0. toolStripProgressBar1. } private void timer1_Tick(object sender.Text = "Carga Completa".Value = 0.. ..ha cargado con exito").Show("En hora buena..Text = "Cargando nuevamente. EventArgs e) { toolStripProgressBar1.Enabled = false. } private void limpiarBarraToolStripMenuItem_Click(object sender.Value >= toolStripProgressBar1.Interval = 50.Value + 2.Maximum = 100.Enabled = true. toolStripStatusLabel1. } } private void cargarNuevamenteToolStripMenuItem_Click(object sender.Value = 0.

Text = "Barra de progreso". .toolStripStatusLabel1. } } } Práctica con la herramienta: TIMER Practica: Crear un semáforo en C# utilizando el componente Timer: Para Iniciar el semáforo Hay que darle clic en el botón que dice encender el cual va a habilitar los dos botones siguientes de ―Detener‖ y ―Apagar‖ y bloqueara al botón ―Encender‖ ya que no se puede encender el semáforo si ya esta encendido además de poner en el label un mensaje indicando que el semáforo se encuentra activo.

cuando se de clic en ―Reanudar‖ activara de nuevo el temporizador del timer. hacer el el picturebox cargue una imagen diferente del semáforo. ¿Cómo funciona el timer en este programa? El uso del timer en este programa es que en cada intervalo diferente de tiempo. por medio de un case de una forma infinita hasta que el usuario de clic en el botón ―Apagar‖ para que finalice el timer con el método Stop(). Para Apagar el semáforo Dar clic en el último botón que se llama ―Apagar‖ la función principal de este botón es finalizar el timer con un método que se llama Stop(). todo el proceso se lo debe realizar en el único método que tiene el timer que se llama Tick .Para pausar el semáforo Se da clic en el botón ―Detener‖ el cual una vez presionado pausara el timer que se encuentra activado y el botón cambiara el nombre a ―Reanudar‖. desactivando los demás botones y dejando activado solo el botón de ―Encender‖ activado.

Práctica con la herramienta: ERROR PROVIDER Practica: Validar un formulario para que el usuario no pueda dejar casilleros vacíos Cuando se da clic en comprobar lo que hace el programa es comprobar si cualquiera de los tres textBox estén vacios y si en caso de estarlos nos saldrá una notificación indicando en que componente se encentra el error: La forma para controlar esto es muy sencilla: hay que validar cada textBox utilizando un ―if‖ y en caso que se cumpla la condición dada se utiliza el componente error proveer utilizando su método que se llama setError en el que se envían dos parámetros. el primero es el componente donde se encuentra el .

se aplicaran las funciones que nos brinda el Colordialog: 1 3 2 Color de Letra: nos permite cambiar el color de fuente del texto ubicado en el textbox . Práctica con la herramienta: COLORDIALOG En el siguiente ejemplo.error y el segundo es una mensaje que queramos que se muestre cuando pasemos el mouse sobre el la notificación de error.

Color de Fondo: permite cambiar de color al fondo de del textbox Fondo de Panel: permite cambiar el color de fondo del GroupBox ColorDialog A continuación se muestra las líneas de código utilizadas para la práctica: private void button1_Click(object sender.ShowDialog() == DialogResult.OK) //si el dialogo es abierto se consulta si el boton aceptar fue presionado . EventArgs e) { if (colorDialog1.

//cambia de color de fondo de la caja de texto } } Práctica con la herramienta: FOLDERBROWSERDIALOG Para elegir carpetas con el componente FolderBrowserDialog En un procedimiento. puede definir la propiedad Description. En el siguiente ejemplo. que toma el miembro de la enumeración SpecialFolder.Color.ShowDialog() == DialogResult. Asimismo.Color. EventArgs e) { if (colorDialog1. Si necesita definir la carpeta de nivel más alto que aparecerá en la vista de árbol del cuadro de diálogo.ForeColor = colorDialog1. se aplicaran las funciones que nos brinda el FolderBrowserDialog: 1 2 . establezca la propiedad RootFolder. compruebe la propiedad DialogResultdel componente FolderBrowserDialog para ver cómo se cerró el cuadro de diálogo y obtener el valor de la propiedad SelectedPath del componente FolderBrowserDialog. que especifica la cadena de texto que aparece en la parte superior de la vista de árbol del explorador de carpetas.{ textBox1. //cambia de color el texto del textbox } } private void button2_Click(object sender.OK) { textBox1.BackColor = colorDialog1.

Dirección de una carpeta: nos permite obtener la dirección completa de una carpeta a buscar Botón nueva carpeta: permite establecer el botón ―crear nueva carpeta‖ en el cuadro de diálogo FolderBrowserDialog El mismo que nos permite crear carpetas donde nosotros queramos .

} } private void button5_Click(object sender.ShowDialog() == DialogResult.El código de esta sección es el siguiente: private void button4_Click(object sender.SelectedPath.Description = "Seleccione una carpeta para copiar su direccion".ShowNewFolderButton = false.Text = folderBrowserDialog1.OK) { //selecciona el texto de la direccion y lo coloca en un label label1. // descripcion del dialogo folderBrowserDialog1. EventArgs e) { . EventArgs e) { //indica que el boton crear nueva carpeta no esta visible folderBrowserDialog1. if (folderBrowserDialog1.

} Práctica con la herramienta: OPENFILEDIALOG y SAVEFILEDIALOG Creamos un nuevo Formulario Agregamos diferentes herramientas al formulario 1 Boton: Abrir 1 Boton: Guardar 2 TextBox: textBox1.ShowDialog().Description = "Puede crear una nueva carpeta. y textBox2 Quedando de la siguiente manera . folderBrowserDialog1. haciendo clic en el boton \"Crear Nueva Carpeta\"".//indica que el boton crear nueva carpeta esta visible folderBrowserDialog1.ShowNewFolderButton = true. folderBrowserDialog1.

sr.Ingresamos el siguiente Código en cada botón haciendo doble clic en cada uno de ellos Botón: Abrir openFileDialog1.ReadToEnd().ShowDialog() == DialogResult.Text).textBox1.FileName). Botón: Guardar if (saveFileDialog1.Text = openFileDialog1.Text = sr.Encoding. System. StreamReader sr = new StreamReader(textBox1.Text. textBox2.ShowDialog() == DialogResult.Title = "Lector de archivos".FileName = "".OK) { this.Write(textBox2. if (openFileDialog1. fichero.Default). .OK) { StreamWriter fichero = new StreamWriter(saveFileDialog1.Text. openFileDialog1.Close().FileName.

IO.FileName).Close(). MessageBox.Show("Se guardo el archivo: " + saveFileDialog1. } Previamente debemos haber importado lo siguiente using System.fichero. Al momento de Ejecutar: Clic en Abrir: .

Clic en Guardar Escogemos el nombre del archivo a guardar .

.

Programar métodos que muestren características de bajo acoplamiento y alta cohesión. Utilizar programación modular.Semana N° 6 Día 1: Clase 11 CLASE N°: TIEMPO: FECHA: DOCENTE GUÍA: TEMA DISCUTIDO: Contenidos  Windows Forms 11 2 Horas 10/06/2013 Ing. Aplicar y emplear el lenguaje C# para el desarrollo.     Utilizar nombres estandarizados. Datos Interesados Discutidos Actividades Durante la Clase .Hubieron exposiciones de Compañeros Cada estudiante iba haciendo sus prácticas de cada tema expuesto   FontDialog PrintDialog . implementación y mantenimiento de los sistemas. comentarios. documentación y sangría para facilitar la posterior lectura del código. Construir módulos que valida el ingreso de datos para la integridad de la información Competencia General  Identificar los métodos a programar en la construcción de un sistema    Manejar controles que se pueden utilizar para que la interfaz gráfica sea amigable. Crear funciones utilizando datos por valor y referencia. Mariuxi Paola Zea Ordoñez UNIDAD III: CONCEPTO DE INTERFAZ GRÁFICA DE USUARIO Y PROGRAMACIÓN EN C# PERÍODO 10/06/2013 al 14/06/2012  Principales controles  Propiedades Objetivos de Desempeño  Crear interfaces gráficas amigables y flexibles.

   Descriptores Analizados . Sintaxis Reflexionar ¿Qué cosa fueron difíciles?  Todo estuvo bien explicado ¿Qué cosas fueron fáciles?  Realizar las practicas ¿Por qué?  Debido a que las Exposiciones estuvieron bien explicadas se pudieron desarrollar los talleres ¿Qué Aprendí Hoy? . Sintaxis PrintDialog Invoca un cuadro de diálogo de impresión estándar de Microsoft Windows que configure PrintTicket y PrintQueue según los datos proporcionados por el usuario y después imprimir un documento.FontDialog PrintDialog LineShape OvalShape LineShape OvalShape RectangleShape RectangleShape Conceptos de los Descriptores Analizados FontDialog Pide al usuario que elija una fuente de entre todas las instaladas en el equipo local.

Font contiene la información de tamaño pero no la información de color. colocamos un text y un button. . En el modo diseñador. En este código se requiere que ya se haya creado un objeto Form que incluya un objeto TextBox y un botón.- A usar los componentes que vienen en visual Estudio 2010. También requiere que se haya creado fontDialog1. Creamos un nuevo proyecto 2. cambiamos nombres como nos convenga. APUNTES DE CLASE Práctica con la herramienta: FONTDIALOG En el siguiente ejemplo de código se utiliza ShowDialog para mostrar FontDialog. Pasos: 1.

3. . Damos doble click en el botón y nos lanzara al editor de código. donde colocaremos el siguiente código. Arrastramos el fontDialog 4.

. damos click en el botón fuente y se nos abre la pantalla de la fuente de las letras.5. hay elegimos la fuente que queremos dar al texto que se mostrara en el texto. Una vez terminado regresamos al editor de diseño y ejecutamos el programa.

. 2. Luego pulsamos en el botón ―Vista Previa‖ para obtener una vista previa del documento a imprimir. Digitamos un texto en el textbox que se encuentra en el centro.Práctica con la herramienta: PRINTDIALOG 1.

Luego pulsamos el botón ―Imprimir‖ donde se abrirá el printDialog para escoger los detalles de impresión. .3.

Excepciones en C# . implementación y mantenimiento de los sistemas.     Utilizar nombres estandarizados. Utilizar programación modular. comentarios. Datos Interesados Discutidos Actividades Durante la Clase . Construir módulos que valida el ingreso de datos para la integridad de la información Competencia General  Identificar los métodos a programar en la construcción de un sistema    Manejar controles que se pueden utilizar para que la interfaz gráfica sea amigable. Programar métodos que muestren características de bajo acoplamiento y alta cohesión. Mariuxi Paola Zea Ordoñez UNIDAD III: CONCEPTO DE INTERFAZ GRÁFICA DE USUARIO Y PROGRAMACIÓN EN C# PERÍODO 10/06/2013 al 14/06/2012  Manejo de Excepciones en Visual Estudio C# Objetivos de Desempeño  Crear interfaces gráficas amigables y flexibles.Semana N° 6 Día 2: Clase 12 CLASE N°: TIEMPO: FECHA: DOCENTE GUÍA: TEMA DISCUTIDO: Contenidos  Windows Forms 12 2 Horas 12/06/2013 Ing. Aplicar y emplear el lenguaje C# para el desarrollo. Crear funciones utilizando datos por valor y referencia. documentación y sangría para facilitar la posterior lectura del código.Hubieron exposiciones de Compañeros Cada estudiante iba haciendo sus prácticas de cada tema expuesto  Manejo de Excepciones Descriptores Analizados .

aunque el primero: try si es necesario. si se produce un error. podemos usar un código como éste: try { // código para trabajar con ficheros. podemos usar la clase Exception como tipo de excepción a capturar. éste lo podemos detectar en el bloque catch. Cuando creamos una estructura de control de excepciones no estamos obligados a usar los tres bloques. La clase Exception es la más genérica de todas las clases para manejo de excepciones. ésta la capturamos en un bloque catch. Cuando queramos controlar una parte del código que puede producir un error lo incluimos dentro del bloque try. para ello usaremos una variable de tipo Exception. Por ejemplo. . no tenemos que hacer nada en especial. es decir. ya que en el momento que se produzca el error se usará (si hay) el código del bloque catch. En el bloque catch podemos indicar que tipo de excepción queremos capturar.IO. por tanto capturará todas las excepciones que se produzcan. Bloque catch Si se produce una excepción.Conceptos de los Descriptores Analizados Manejo de excepciones estructuradas Las excepciones en C# las podemos controlar usando las instrucciones try / catch / finally. Veamos ahora con más detalle cada uno de estos bloques y que es lo que podemos hacer en cada uno de ellos. la cual puede ser del tipo de error específico que queremos controlar o de un tipo genérico. } catch(System.IOException ex) { // el código a ejecutar cuando se produzca ese error } Si nuestra intención es capturar todos los errores que se produzcan. ya que es el que le indica al compilador que tenemos intención de controlar los errores que se produzcan. Bloque try En este bloque incluiremos el código en el que queremos comprobar los errores. El código a usar será un código normal. es decir. si sabemos que nuestro código puede producir un error al trabajar con ficheros. etc. no queremos hacer un filtro con errores específicos. y por tanto estarán delimitadas con un par de llaves. Estas instrucciones realmente son bloques de instrucciones.

podemos hacerlo de esta forma: try { // código que queremos controlar } catch { // el código a ejecutar cuando se produzca cualquier error } La variable indicada en el bloque catch la podemos usar para mostrar un mensaje al usuario o para obtener información extra sobre el error.Exception ex) { // el código a ejecutar cuando se produzca cualquier error } Aunque si no vamos usar la variable indicada en el bloque Catch. en el que no se usa una variable y tampoco se indica el tipo de error que queremos interceptar. pero no siempre vamos a hacer uso de esa variable.try { // código que queremos controlar } catch(System. en el que solo se indica el tipo de excepción: try { // código que queremos controlar } catch(FormatException) { . Pero es posible que nuestra intención sea capturar errores de un tipo concreto sin necesidad de utilizar una variable. en ese caso podemos crear un bloque catch como el siguiente. en ese caso podemos utilizar el código anterior. pero queremos que no se detenga la aplicación cuando se produzca un error.

cada uno de ellos con un tipo de excepción diferente. de esta forma. Aunque el propio compilador de C# detectará si hay capturas de errores genéricas antes que las más específicas. se capturará en ese bloque catch. es muy probable que no siempre podamos conseguirlo. en estos casos la aplicación se detiene y se muestra el error al usuario.NET buscará la captura que mejor se adapte al error que se ha producido. por tanto siempre deberíamos detectar todos los errores que se produzcan en nuestras aplicaciones. con idea de que tengamos siempre controlado cualquier error que se produzca: try { // código que queremos controlar } catch(FormatException) { // captura de error de formato } catch(Exception ex) { // captura del resto de errores } Captura de errores no controlados Como es lógico. por tanto deberíamos poner las más genéricas al final. Una forma de hacerlo es iniciando nuestra aplicación dentro de un bloque try/catch. avisándonos de ese hecho. éstas serán inicialmente controladas por el propio runtime de .// interceptar los errores del tipo FormatException } Varias capturas de errores en un mismo bloque try/catch En un mismo try/catch podemos capturar diferentes tipos de errores.NET. porque cuando el runtime . En el siguiente código capturamos un error específico y también uno genérico. el CLR de . para ello podemos incluir varios bloques catch. si no controlamos las excepciones que se puedan producir en nuestras aplicaciones. Es importante tener en cuenta que cuando se produce un error y usamos varios bloques catch. Pero esto es algo que no deberíamos consentir. cuando se produzca el error. pero siempre lo hará examinando los diferentes bloques catch que hayamos indicado empezando por el indicado después del bloque try. pero a pesar de que lo intentemos. de forma que siempre nos aseguremos de que las capturas de errores más específicas se intercepten antes que las genéricas.

NET se encuentra con una excepción. Reflexionar ¿Qué cosa fueron difíciles?  Todo estuvo bien explicado ¿Qué cosas fueron fáciles?  Realizar las practicas ¿Por qué?  Debido a que las Exposiciones estuvieron bien explicadas se pudieron desarrollar los talleres ¿Qué Aprendí Hoy? A usar los componentes que vienen en visual Estudio 2010. no ya por detectar esos errores que no hemos tenido la previsión de controlar. lo utiliza.de . aunque posiblemente ni siquiera lo pusimos pensando que podía capturar errores producidos en otros niveles más profundos de nuestra aplicación. el error será interceptado por ese catch. lo que hace es revisar "la pila" de llamadas y buscar algún try/catch. y si no lo encuentra. se encarga de lanzar la excepción deteniendo el programa. pero antes de llamar a ese método hemos usado un try/catch. si lo encuentra. Esto es importante saberlo. APUNTES DE CLASE Práctica con la Manejo de Execiones mediante: TRY { CATCH (…){} Desarrollo de la aplicación. sino porque es posible que si un error se produce dentro de un método en el que no hay captura de errores. .

Text)). using System.Parse(txtcantidad.Data.ComponentModel. namespace WindowsFormsApplication6 { public partial class Form1 : Form { public Form1() { InitializeComponent(). using System. } private void textBox2_TextChanged(object sender.using System. EventArgs e) { try { byte numero = (byte.Generic.Collections.Text.Drawing. EventArgs e) { } private void txtcantidad_Leave(object sender. using System.Linq.Windows. using System.Forms. using System. using System. } catch (Exception a) { . using System.

txtcantidad.Text)).Parse(txtprecio.ToString().Parse(txtcantidad.Focus(). } } private void txtprecio_Leave(object sender.ToString()).Show("Por favor ingrese un numero valido").Text = "".MessageBox. } } private void button1_Click(object sender.Focus(). EventArgs e) { try { byte numero = (byte. } } } . txtcantidad.Text)*int. } catch (Exception b) { MessageBox.GetBaseException().Text="". txtprecio.Text = (int. txtprecio.Show(b.Text)).Parse(txtprecio. EventArgs e) { txttotal.

Mariuxi Paola Zea Ordoñez UNIDAD III: CONCEPTO DE INTERFAZ GRÁFICA DE USUARIO Y PROGRAMACIÓN EN C# PERÍODO 01/07/2013 al 05/07/2013  Revision de temas para expsiciones Objetivos de Desempeño  Crear interfaces gráficas amigables y flexibles. documentación y sangría para facilitar la posterior lectura del código. Programar métodos que muestren características de bajo acoplamiento y alta cohesión. Aplicar y emplear el lenguaje C# para el desarrollo. Utilizar programación modular. Datos Interesados Discutidos Actividades Durante la Clase  A cada grupo les dio tema para exposición .Semana N° 7 Día 1: Clase 13 CLASE N°: TIEMPO: FECHA: DOCENTE GUÍA: TEMA DISCUTIDO: Contenidos 13 2 Horas 01/07/2013 Ing. comentarios. Crear funciones utilizando datos por valor y referencia.     Utilizar nombres estandarizados. Construir módulos que valida el ingreso de datos para la integridad de la información Competencia General  Identificar los métodos a programar en la construcción de un sistema    Manejar controles que se pueden utilizar para que la interfaz gráfica sea amigable. implementación y mantenimiento de los sistemas.

Mariuxi Paola Zea Ordoñez UNIDAD III: CONCEPTO DE INTERFAZ GRÁFICA DE USUARIO Y PROGRAMACIÓN EN C# PERÍODO 01/07/2013 al 05/07/2013  Examen Objetivo de Hemisemestre Objetivos de Desempeño  Crear interfaces gráficas amigables y flexibles. Aplicar y emplear el lenguaje C# para el desarrollo.     Utilizar nombres estandarizados. Crear funciones utilizando datos por valor y referencia. documentación y sangría para facilitar la posterior lectura del código. Utilizar programación modular. comentarios. . Construir módulos que valida el ingreso de datos para la integridad de la información Competencia General  Identificar los métodos a programar en la construcción de un sistema    Manejar controles que se pueden utilizar para que la interfaz gráfica sea amigable. Datos Interesados Discutidos Actividades Durante la Clase  La Ing.Semana N° 7 Día 2: Clase 14 CLASE N°: TIEMPO: FECHA: DOCENTE GUÍA: TEMA DISCUTIDO: Contenidos 14 2 Horas 03/07/2013 Ing. Realizo a los estudiantes un examen objetivo de fin de Hemisemestre. implementación y mantenimiento de los sistemas. Programar métodos que muestren características de bajo acoplamiento y alta cohesión.

Private Button btnImprimir = new Button(). Una variable del instancia -----Respuesta: Es un objeto de una clase. Utilizar programación modular. implementación y mantenimiento de los sistemas. Datos Interesados Discutidos Actividades Durante la Clase  La Ing. Aplicar y emplear el lenguaje C# para el desarrollo. documentación y sangría para facilitar la posterior lectura del código. Construir módulos que valida el ingreso de datos para la integridad de la información Competencia General  Identificar los métodos a programar en la construcción de un sistema    Manejar controles que se pueden utilizar para que la interfaz gráfica sea amigable. Crear funciones utilizando datos por valor y referencia. Mariuxi Paola Zea Ordoñez UNIDAD III: CONCEPTO DE INTERFAZ GRÁFICA DE USUARIO Y PROGRAMACIÓN EN C# PERÍODO 15/07/2013 al 19/07/2013  Revision de Examen Objetivo de Hemisemestre Objetivos de Desempeño  Crear interfaces gráficas amigables y flexibles. comentarios. Representa un atributo de un objeto . APUNTES DE CLASE .     Utilizar nombres estandarizados. Respuesta: Crea un control button. Programar métodos que muestren características de bajo acoplamiento y alta cohesión. Realizo la correcion del examen hecha a los estudiantes un examen objetivo de fin de Hemisemestre. Instancia un control button 2.Correcion de la Pureba 1.Semana N° 8 Día 1: Clase 15 CLASE N°: TIEMPO: FECHA: DOCENTE GUÍA: TEMA DISCUTIDO: Contenidos 15 2 Horas 15/07/2013 Ing.

. Crear funciones utilizando datos por valor y referencia. Mariuxi Paola Zea Ordoñez UNIDAD III: CONCEPTO DE INTERFAZ GRÁFICA DE USUARIO Y PROGRAMACIÓN EN C# PERÍODO 15/07/2013 al 19/07/2013  Manejo de Excepciones en Visual Estudio C# Objetivos de Desempeño  Crear interfaces gráficas amigables y flexibles. documentación y sangría para facilitar la posterior lectura del código. Que devuelve la siguiente función: Using System. Class Q1: System.length. return valor. Q1 q){return msg+1.}} public static string operator +(String msg.}catch(Q1 q){Throw.3.   Utilizar nombres estandarizados. comentarios. Que hace: class prueba:Form{} Respuesta: Crea la clase prueba que hereda de la clase form 5.}} Respuesta: Se produce un StackOverFlowExeception 4. Encuentra algún error en el constructor CuentaBancaria Public int CuentaBancaarioao Semana N° 8 Día 2: Clase 16 CLASE N°: TIEMPO: FECHA: DOCENTE GUÍA: TEMA DISCUTIDO: Contenidos  Windows Forms 16 2 Horas 17/07/2013 Ing. Una variable declarada dentro de un método se llama variable Respuesta: Local 6.NullReferenceException{ static int Main(){ Try{ String valor=‖Value: ‖+(Q1)null.

implementación y mantenimiento de los sistemas. Aplicar y emplear el lenguaje C# para el desarrollo. . como un nuevo valor de identidad. En este caso. podría haber valores duplicados en las distintas instancias de la DataTable. con un origen de datos que pueda crear procedimientos almacenados con parámetros de salida.  Programar métodos que muestren características de bajo acoplamiento y alta cohesión. Utilizar programación modular. Construir módulos que valida el ingreso de datos para la integridad de la información Competencia General  Identificar los métodos a programar en la construcción de un sistema    Manejar controles que se pueden utilizar para que la interfaz gráfica sea amigable.Hubieron exposiciones de Compañeros Cada estudiante iba haciendo sus prácticas de cada tema expuesto  Valores automáticas y validación de datos Descriptores Analizados . Datos Interesados Discutidos Actividades Durante la Clase . Como todos los clientes trabajan con un único origen de datos. Por tanto. El uso del origen de datos con el fin de llenar una columna Identidad o Auto numérica para una nueva fila agregada a un DataSet crea una situación única.Valores automáticos y validación de datos VALORES AUTOMÁTICOS EN C# Es posible establecer una columna de un DataTable para que sea una clave principal de incremento automático con el fin de garantizar que haya un valor único para cada fila de la tabla. Sin embargo. Puede que el origen de datos pertinente no admita procedimientos almacenados con parámetros de salida. como parámetro de salida. el DataSet no conoce los valores generados automáticamente por el origen de datos. ya que el DataSet no tiene conexión directa con el origen de datos. Para ello se utilizan columnas de identidad en Microsoft SQL Server o campos Autonumérico en Microsoft Access. es posible tener varios clientes de la aplicación y cada uno de esos clientes puede trabajar con una instancia diferente de la tabla DataTable. como Microsoft SQL Server. se pueden especificar los valores generados automáticamente.0 con el fin de agregar código al evento RowUpdated para determinar si se ha producido una inserción y recuperar el valor de incremento automático y almacenarlo en la fila actualizada en estos momentos. En este caso es posible utilizar el evento RowUpdated para recuperar un valor generado automáticamente y ponerlo en la fila insertada o actualizada del DataSet. es posible resolver este conflicto si se permite que el origen de datos defina el valor de incremento automático. y utilizar DataAdapter para volver a asignar el valor a la columna del DataSet. Sin embargo. Esta sección incluye un ejemplo que muestra cómo se puede utilizar Microsoft Access 2000 o posterior y el proveedor de datos OLE DB de Jet 4.

Antes de que un usuario pueda confirmar los datos. LightSwitch muestra un error. debe solucionarse el error de validación. Puede agregar una o más reglas de validación a una entidad o tabla en LightSwitch. Si un usuario agrega o cambia datos y esos datos no cumplen las reglas de validación. Reflexionar ¿Qué cosa fueron difíciles?  Todo estuvo bien explicado ¿Qué cosas fueron fáciles?  Realizar las practicas ¿Por qué?  Debido a que las Exposiciones estuvieron bien explicadas se pudieron desarrollar los talleres ¿Qué Aprendí Hoy? A usar los componentes que vienen en visual Estudio 2010. APUNTES DE CLASE PRACTICA VALIDACION DE DATOS INTERFAZ . Una regla de validación es una condición o una restricción que deben cumplir los datos de la aplicación. El procedimiento almacenado se utiliza para insertar una nueva fila en la tabla Categories de la base de datos Northwind y para devolver el valor de identidad devuelto por la función Transact-SQL SCOPE_IDENTITY() como parámetro de salida. VALIDACION DE DATOS Puede aplicar reglas de validación a una entidad o tabla para asegurarse de que se escriben datos con formato correcto en el origen de datos.Recuperar valores de columnas de identidad de SQL Server El procedimiento almacenado y el ejemplo de código siguientes muestran cómo asignar el valor de identidad de incremento automático desde una tabla de Microsoft SQL Server a su columna correspondiente en una fila agregada a una tabla de un DataSet.

CancelEventArgs e) { if (txtCantidades. } } . e.MÉTODOS VALIDATING CODIGO PARA VALIDAR CAMPOS NULOS private void textBox2_Validating(object sender.Trim() == "") { MessageBox.Cancel = true.Text.Show("INGRESE NUMERO").

Text.Show("Necesita escribir Nombres").Cancel = true. CancelEventArgs e) { if (txtCorreo. } } CODIGO PARA VALIDAR INGRESO DE CIFRAS private void txtPrecios_Validating(object sender.CODIGO PARA VALIDAR CAMPOS NULOS private void txtNombres_Validating(object sender. } .Length == 0) { MessageBox. CancelEventArgs e) { if (txtNombres.Show("No es una cifra").IndexOf('.Show("Correo Invalido!").Text. e. CancelEventArgs e) { try { double numero = Double. }catch(System.') == -1) { MessageBox.Cancel = true. e. e.IndexOf('@') == -1 || txtCorreo.Parse(txtPrecios.Text).Cancel = true. } } CODIGO PARA VALIDAR EL INGRESO DE CORREOS ELECTRONICOS private void txtCorreo_Validating(object sender.Text.FormatException){ MessageBox.

KeyChar!=(char)Keys.Handled = true.Back&&e.Show("Necesita escribir Nombres").Handled = true. KeyPressEventArgs e) { if (!Char.IsLetter(e. KeyPressEventArgs e) { if (Char.IsLetter(e. } } EVENTOS KEYPRESS CODIGO PARA VALIDAR INGRESO DE LETRAS Y ESPACIOS private void txtNombres_KeyPress(object sender.Length==0) { MessageBox. EventArgs e) { if (txtNombres. } .Text.} VALIDATED CODIGO PARA VALIDAR INGRESO DE CAMPOS NULOS private void txtNombres_Validated(object sender.KeyChar)&&e.Space) e.KeyChar)) e. } CODIGO PARA VALIDAR INGRESO DE NUMEROS private void txtPrecios_KeyPress(object sender.KeyChar!=(char)Keys.

Show("La fecha no puede ser mayor a Hoy"). KeyPressEventArgs e) { if (!Char. EventArgs e) { if (calendario.CODIGO PARA VALIDAR INGRESO DE CANTIDADES private void txtCantidades_KeyPress(object sender.KeyChar != (char)Keys. MouseEventArgs e){ calendario. } MOUSEMOVE CODIGO PARA ENVIAR VALORES AL CALENDARIO private void calendario_MouseMove(object sender.MaxDate = DateTime.Today.IsDigit(e.Value > DateTime.Today) MessageBox. } VALUECHANGED CODIGO PARA VALIDAR FECHA DE NACIMIENTO private void calendario_ValueChanged(object sender.KeyChar) && e. } .Handled = true.Back) e.

Utilizar programación modular. implementación y mantenimiento de los sistemas. Aplicar y emplear el lenguaje C# para el desarrollo. Construir módulos que valida el ingreso de datos para la integridad de la información Competencia General  Identificar los métodos a programar en la construcción de un sistema    Manejar controles que se pueden utilizar para que la interfaz gráfica sea amigable. comentarios. Datos Interesados Discutidos Actividades Durante la Clase . Crear funciones utilizando datos por valor y referencia. Mariuxi Paola Zea Ordoñez UNIDAD III: CONCEPTO DE INTERFAZ GRÁFICA DE USUARIO Y PROGRAMACIÓN EN C# PERÍODO 22/07/2013 al 26/07/2013  Manejo de Excepciones en Visual Estudio C# Objetivos de Desempeño  Crear interfaces gráficas amigables y flexibles. Programar métodos que muestren características de bajo acoplamiento y alta cohesión.Validacion de llaves primarias y ajenas Formularios MDI .Semana N° 9 Día 1: Clase 17 CLASE N°: TIEMPO: FECHA: DOCENTE GUÍA: TEMA DISCUTIDO: Contenidos  Windows Forms 17 2 Horas 22/07/2013 Ing.Hubieron exposiciones de Compañeros Cada estudiante iba haciendo sus prácticas de cada tema expuesto   Validacion de llaves primarias y ajenas Formularios MDI Descriptores Analizados .     Utilizar nombres estandarizados. documentación y sangría para facilitar la posterior lectura del código.

Los tipos de datos que se pueden validar son: Números: Se puede establecer que el número que se introduce a una celda sea decimal o entero. que tomados colectivamente nos permiten identificar un registro como único. una llave primaria es un conjunto de uno o más atributos de una tabla. Punto a considerar Debe verificarse la exactitud de los datos críticos. establecer una fecha máxima. que este entre un mínimo y un máximo. Es también el paso previo a su entrega.VALIDACION DE DATOS ¿De qué trata? Proceso por el cual los datos son filtrados y aceptados o rechazados en base a procedimientos definidos. mínima o un intervalo y también establecer una fórmula para determinar las fechas válidas. llaves o también conocidas como claves ajenas consiste en garantizar la integridad referencial entre tablas que puedan existir en una base de datos. estos errores pueden ser por tipeo o debido a que la información ingresada sea incorrecta. con la creación de técnicas para VALIDACION DE DATOS. . Los resultados finales deben ser traceables a quien ingresó los datos o al instrumento desde el cual se incorporaron automáticamente TIPOS DE DATOS Cuando se introducen numerosos datos en una tabla. Se puede disminuir el riesgo de cometer errores. excluir un número o intervalo de números y finalmente se puede utilizar una fórmula para hacer el cálculo de validación Fechas y horas: En este caso se pueden excluir fechas u horas. Los chequeos deben ser parte de procedimientos rutinarios para identificar errores Deben existir procedimientos estándar para definir datos sin procesar. o la clave de única el registro de población. tanto en máximo como en mínimo. independientemente de si fueron ingresados a mano o transferidos electrónicamente. en una tabla podemos saber cuál es un registro en específico sólo con conocer la llave primaria. es decir. Ejemplo el número de cedula de ciudadanía. permiten identificar a una persona en particular en una entidad de personas. seguridad para la entrada de datos y revisión. LLAVE AJENA En base de datos. la cual impide introducir datos erróneos a medida que llenamos una tabla. Longitud: Pone límites al número de caracteres que se pueden introducir. existe el riesgo de que cometamos errores. BASE DE DATOS: LLAVES PRIMARIAS Y AJENAS LLAVE PRIMARIA En base de datos.

con llaves primarias. de manera opuesta a una interfaz de documento único o SDI. tiene lugar al momento de hacer consultas e ingresar datos a tablas ya referenciadas. FORMULARIOS MDI (INTERFAZ DE MULTIPLES DOCUMENTOS) ¿Qué son? Los programas de ordenador gráficos de interfaz de múltiples documentos (MDI) son aquellos cuyas ventanas se encuentran dentro de una ventana padre (normalmente con la excepción de las ventanas modales). Algunas personas usan un nombre distinto para este tipo de interfaz. Generalmente se considera que SDI es más útil si los usuarios trabajan con varias aplicaciones. Microsoftha cambiado la interfaz de sus aplicaciones Office de SDI a MDI y luego otra vez a SDI. La principal desventaja de MDI es la escasez de información sobre las ventanas abiertas: Para ver una lista de ventanas abiertas de una aplicación MDI. la barra de tareas del administrador de ventanas muestra las ventanas abiertas actualmente. es ahí donde se valida dicho ingreso. cuando se genera un ingreso de datos. se está registrando llaves ajenas correspondiente a cliente y producto. Por ejemplo: al registrar un factura. "interfaz de pestañas" (TDI). . Como parte de demostración de se tiene el siguiente ejemplo. el usuario normalmente tiene que seleccionar un menú específico ("lista de ventanas" o algo parecido). desarrollado en lenguaje de programación c#. para lo cual se debe saber el tipo de dato que permite. Cuando se usa pestañas para controlar las ventanas. si esta opción está disponible. Dicho campo hará la función de clave primaria en la tabla referenciada". lo que ha hecho obsoleta esta crítica. En los últimos años. La validación de llaves ajenas. Por ejemplo. Las compañías han utilizado ambos sistemas con reacciones diversas. estas normalmente no se pueden cambiar de tamaño por separado. y algunas características mismas del ingreso. aunque el grado de implementación varía entre componentes."La clave ajena hace referencia a un campo que se añade a una tabla para hacer de enlace con otra. Formulario "Padre" o "Parent" que puede contener otros formularios llamados "Hijos" o "Child". es ahí donde toma un papel importante el poder validar ese ingreso y no tener inconvenientes. Con una aplicación SDI. Ha habido muchos debates sobre qué tipo de interfaz se prefiere. VALIDACION DE LLAVES PRIMARIAS Y AJENAS La validación de llaves primarias siempre se da. las aplicaciones han añadido barras de tareas o sistemas de pestañas a las aplicaciones MDI.

accdb‖. APUNTES DE CLASE PRACTICA PARA LA VALIDACION DE LLAVES PRIMARIAS Y AJENAS Nuestro ejemplo ilustrativo estará compuesta por una base de datos. cabe recalcar MS Access 2010 coloca a que toda base de datos. en nuestro caso la nombraremos: ―DataBaseSistema. es necesario crear nuestra base que contendrá todos los datos. . creada en Microsoft Access 2010. Las aplicaciones MDI suelen tener un elemento de menú Ventana con submenús que permiten cambiar entre ventanas o documentos. Reflexionar ¿Qué cosa fueron difíciles?  Todo estuvo bien explicado ¿Qué cosas fueron fáciles?  Realizar las practicas ¿Por qué?  Debido a que las Exposiciones estuvieron bien explicadas se pudieron desarrollar los talleres ¿Qué Aprendí Hoy? A usar los componentes que vienen en visual Estudio 2010. en la parte lateral derecho es necesario colocarle un nombre a nuestra base de datos. en su nombre la extensión de archivo ―.Aplicaciones de interfaz de múltiples documentos (MDI) Las aplicaciones MDI (interfaz de múltiples documentos) permiten mostrar varios documentos al mismo tiempo. 1. y una aplicación dentro del Entorno Integrado Microsoft Visual Studio 2010 y su lenguaje C#. Como parte principal. con el propósito de poderla identificar. en donde se pueda consultar y agregar llaves tanto en el caso de llaves primarias como llaves ajenas. cada uno de ellos en su propia ventana. CREACION DE BASE DATOS Dentro de Microsoft Access 2010.accdb‖.

direccion]. nombre. ciudad. procedemos a crear cada una las tablas con sus correspondientes atributos o campos. Tabla PRODUCTO . estar en la pestaña CREAR y seleccionamos la opción TABLA Con el propósito de simular las operaciones que realiza una factura.Ya creada nuestra base de datos. Para la creación de una tabla es necesario. especificando el tipo de datos que puede almacenar. se necesitara crear cuatro tablas: Tabla CLIENTE [cedula. teléfono.

direccion]. ciudad. valorUnitario. no olvidar que existe una relación de Muchos a Muchos entre la tabla PRODUCTO Y FACTURA. Ya habiendo creado las tablas correspondientes. sin dejar ninguna tabla suelta o sin relacionar. la siguiente ilustración: . valorTotal. Tabla DETALLE_FACTURA [codigoPro. nombre. luego en su modelo relacional tendremos. es necesario colocar las llaves primarias en las tablas CLIENTES. teléfono.[código. realizamos las relaciones a cada tabla. la tabla DETALLE_FACTURA. cliente. Tabla FACTURA [numero. PRODUCTO. stock]. fechaNacimiento]. por tal motivo se vio la necesidad crear la tabla DETALLE_FACTURA. nos servirá para almacenar nuestras llaves ajenas correspondientes a FACTUA. descripción. PRODUCTO Y FACTURA.

En la tabla CLIENTE. Ingresamos al menú ―DATOS‖ y al desplegarse las opciones seleccionamos ―AGREGAR NUEVO ORIGEN DE DATOS‖. desarrollamos nuestro proyecto en Microsoft Visual Studio 2010. no tiene llaves primaria por ser una tabla que rompe las relacione de ―Muchos a Muchos. tenemos como primaria a “NUMERO‖ ya que una factura solo posee un número y no se podrá repetir. En la tabla PRODUCTO. tenemos como foránea a “COD_PRO” y “NUM_FAC”. de igual forma esta será llave ajena en la tabla FACTURA. y esta misma será llave ajena en la tabla FACTURA. entre las llaves foránea tenemos: “CLIENTE” que será “CEDULA” en la tabla CLIENTE. una clase y una conexión de datos. . en lenguaje C#: 2. llave primaria es: “CODIGO”. DETALLE FACTURA. nuestro proyecto estará compuesto por dos formulación. En FACTURA. nuestra llave primaria es: “CEDULA”. CREACION DE APLICACIÓN Creamos nuestro proyecto en lenguaje C#.‖ Una vez. Creación del ORIGEN DE DATOS 1. terminado la creación de nuestra base de datos. en nuestro caso lo nombraremos ― Validación de Llaves‖. como parte de hacer una consulta a los clientes en caso de que dicho cliente ya este registro. ya que por medio de esta llave se podrá consultar el producto a facturar.

después click en botón ―Siguiente‖ 3. Escogemos el tipo de Origen de datos. en nuestro ejemplo. luego como un téster para conocer si la conexión está bien es necesario presionar el botón ―PROBAR CONEXION‖ .2. y colocarla. Y al momento de aparecer la nueva venta es necesario buscar nuestra base de datos creada. ocuparemos Base de Datos. Realizamos una NUEVA CONEXIÓN.

podremos visualizar las tablas con las que cuenta la base de datos ―DataBaseSistema. . podremos ver que en nuestro proyecto aumento una parte de base datos. y en panel de Origen de datos. Una vez realizado la creación del Origen de Datos.Es necesario. 4. el cual tendrá la función de ingresar los nuevos registros y validar la llave primaria no se repita y poder controlar cierto errores que se presentan al almacenar una llave primaria. presionamos el botón FINALIZAR. por ejemplo las vistas y tablas. copiar la cadena de conexión. Luego se selecciona lo que se desea ocupar de la base de datos. FACTURA: Nos presentara el formulario ―FACTURA‖: que tendrá la función hacer consultar por medio de llaves primarias registros de las tablas CLIENTES Y PRODUCTOS.accdb‖ Creación de INTERFAZ GRAFICA DE USUARIO Formulario1: INICIAL CLIENTE: Nos llevara el formulario ―CLIENTE‖. ya que este sirve como el Path o la direccion para poder enlazar nuestra aplicación con la base de datos. y como parte final. además podrá registrar las llaves foráneas.

en el caso del botón Factura. tendrá el nombre de ―CLIENTE‖. como lo ilustra la imagen: Como notamos los datos a ingresar son los atributos que puesto en nuestra base de datos. formulario en su parte ―RUC O CEDULA‖. Formulario2: INGRESO DE CLIENTE El form2. etc.Factura Cliente Cada vez que se llame a los eventos de los botones ese tendrá la responsabilidad de crear objetos. su interfaz estará de la siguiente forma. botones. etiquetas. al dar click creara un nuevo objeto de la clase FACTURA. permitirá el ingreso de un nuevo registro a nuestra base de datos y su interfaz estará compuesta por varios controles (cajas de texto. en la misma tabla Cliente. tiene la función hemos este de validar . paneles.) que ya antes se han manipulados.

este consultara a nuestra base de datos. y en caso de que el número ya esté en un registro genera un mensaje advertencia y no permitirá que se guarde. Líneas de código del botón “REGISTRAR”: botón “REGISTRAR”: CLASE 1: CLASS1 . ya que una cedula es una llave primaria y por ende no se puede repetir.el ingreso de cedula del nuevo registro que se pretende guardar. El guardado de registro se realiza mediante el evento click que se realiza al presionar el botón ―REGISTRAR‖.

crearemos tres métodos primero ―conexionBD( )‖. estableciendo en una variable tipo String. Antes debemos tener en cuenta que para que la clase trabaje con base de datos y formularios utilizaremos las librerías: Método: conexionBD( ) Este método tendrá la función de establecer la conexión a la base de datos. Método: busquedasql( ) Este método realiza las búsquedas y realiza comparaciones con el dato ingresado en este caso CEDULA. Ahora algo muy importante a recatar es que el método busquedasql( ) es un método que retorna un valor booleano. entre True y False. Ya creada la clase.el segundo ―busquedasql( )‖. es el dato ingreso que nos ayuda a validar la no existencia de duplicidad de valore.Esta clase nos permitirá el ingreso de registros en la base de datos. y el tercero ―ingresoclientesql( )‖. . esta clase tendrá los métodos de conexión y consulta a las tablas.

siempre cuando cumpla la condición en que el campo cedula de la tabla sea igual al valor cedula que se esté ingresando. Método: ingresoclientesql( ): Como indica el método. donde verifica que el número de cedula no este repetido con cualquier otro registro. .Esta línea de código: string setenciasql = "Select COUNT(*) FROM " + tabla + " WHERE CEDULA = @cedula ". Cada recalcar que primero tiene una condición en el cual valida al método busquedasql(). este método recibe varios parámetros entre los cuales solo tenemos los atributos ya colocados al principio en la tabla cliente. aquí cuenta todos los registros de la tabla al que se quiere acceder. con esto este método es llamado de cualquier formulario para el registros de clientes e insertarlo a la base de datos. es la sentencia o la orden para la consulta.

el formulario automáticamente se cerrara y nos presentara el formulario cliente. para esta búsqueda se utilizara su llave primaria ―CEDULA‖. con el propósito de registrarlo. también estará siendo accedido desde el formulario FACTURA.Este método será el encargado de ingresar los nuevos registros y podrá ser llamado directamente desde el formulario INICIAL. y una vez ingresado e forma automática el usuario podrá ser consultado desde el formulario factura. al momento de buscar los datos un cliente y tal no se encuentre registrado en la base de datos. al dar click en el botón de CLIENTE. Este botón tiene las siguientes líneas de código: . Formulario3: FACTURA El botón de BUSCAR CLIENTE: Este evento tendrá la función de ir a la tabla clientes y buscar los valor del nombre del cliente y direccion del cliente.

lo busca y captura todos sus del producto que se pretende buscar.El botón de AGREGAR: Este método captura el código del producto que es llave en la tabla PRODUCTO. . luego capturado realiza primaria atributos una operación aritmética para realizar el cálculo entre la cantidad del producto y el valor unitario y así tener el valor total.

Una vez ya ingresado los valor. . pone con un valor máximo de iteración al número de filas de dataGridView1. se ejecuta la sentencia u operación INSERT INTO. va recorriendo y al mismo tiempo realiza un comando de insertar lo que recorre el dataGridView1. Después por medio de un bucle iterativo. completamente al momento de guardar. capturando de forma automática los valores ya ingresados y en la sentencia los pone como parámetros y antepuestos por un signo de @. cuenta y captura el número de filas que se pudo llenar en el dataGridView1. En las siguientes líneas de código. ya que aquí se tornara a guardar los datos de cliente y de producto.El botón GUARDAR Este botón tiene una de las funciones más principales en la validación de llaves ajenas. aquí es donde se valida si las llaves foráneas aceptan el tipo de formato y valores.

.ToInt32(dataGridView1.ToString()). i++) { valort += Convert. Este método se aplica cuando se realiza el evento click en el botón AGREGAR. se busca la propiedad "IsMDIContainer" y se cambia a "True".Rows.Rows[i]. i < columnas. realiza la sumatoria de todos los valores en el detalle de cada producto. 2. for (int i = 0.Cells[4]. public void valortotal() { double valort = 0.Count. int columnas = Convert. } textBox9.Value).Text = valort. y lo presenta en la caja de texto ―TOTAL‖. Creamos un Nuevo proyecto en Visual Studio 2010. En la ventana Propiedades.ToString().CALCULO DE TOTAL Este método. } Practica de Formularios MDI Pasos para crear un formulario MDI: 1.ToDouble(dataGridView1.

textBox2 y textBox3. 4.3. Se elige "Windows Form. le colocamos un nombre a nuestro formulario nuevo". Aparecer á la ventana de "Agregar Nuevo Elemento ". A este control le agregamos 3 controles tipo textBox que se dejarán con sus nombres por defecto: textBox1. L uego en el menú se elige Proyectos -> Agregar Windows Form. .

se le hace click derecho al icono de Form1 y clickeamos en "Ver Código".MdiParent = this.Text = "Probando". El código a añadir será: public partial class Form1 : Form { Form2 frm2. El código a añadir será: private void Form2_Load(object sender. En la ventana "Inspector de Soluciones". EventArgs e) { textBox1. frm2. En la ventana "Inspector de Soluciones". frm2. se le hace click derecho al icono de Form2 y clickeamos en "Ver Código". } } 6. } private void Form1_Load(object sender.Show(). EventArgs e) { frm2 = new Form2().5. } public void Borar() { . public Form1() { InitializeComponent().

jalándolo desde la caja de herramientas: 8. textBox3.Text = "". textBox2.Text="". Luego a Form1 le añadimos un control MenuStrip.textBox1.Text="". Luego se le hace click a la etiqueta "limpiar" y se añade el código: . } 7.

Borar(). Se pueden hacer más cosas.private void limpiarToolStripMenuItem_Click(object sender. EventArgs e) { frm2. añadí esto al menuStrip: 10. } 9. por ejemplo. Junto con este código: .

11. Resultados: Al ejecutar el proyecto se muestra el Texto que escribimos en el primer textBox: Si deseamos limpiar la caja de texto debemos presionar el Menú Limpiar: . Esto permite minimizar y maximizar Form2 clickeando la opción correspondiente en el menú.

minimizar la ventana hacemos clic en los menús Maximizar y Minimizar: Vista Maximizada: Vista Minimizada: Por ultimo si deseamos poner la ventana en estado Normal presionamos el Menú Normal: .Si deseamos maximizar.

del cual será primario o padre en donde se mostraran las demás ventanas de los otros formularios llamados secundarios o hijos. al momento de que se ponga True el color de fondo del formulario cambiara indicando de que será contenedor de formularios hijos o secundarios. 2. ..PRACTICA 2: 1.. se debe colocar en la propiedad IsMdiContainer a True.Luego para que nuestro formulario sea Padre o Primario.Creamos un formulario.

. en el cual contendra opcviones para abrir y mostrar los formularios hijos que se encuentran en el formulario.3.Ahora colocamos un MenuStrip. .

5.Procedemos a crear formularios para los MenuStrip .Seleccionamos el MenuStrip.4.. esto sirvira para indicvar que ventana secundario o hija esta activa que se muestra en el formulario padre.. en propiedades MdiWindowsListItem selecciones ventanaTollStripMenuItem.

6. perro. //.. EventArgs e) { Form2 perro = new Form2(). mediante la propiedad MdiParent banana.MdiParent = this. .Luego damos clic en Animales  Perro y nos mostrara el formulario Perro (Secundario) dentro del formulario Padre (Form1). } 7.Show(). EventArgs e) { //se crea una instancia de un formulario hijo Form9 banana = new Form9().show se utiliza para mostrar la instancia del formulario previo banana.. perro.En los MenuStrip se realiza la siguiente codificacion private void bananoToolStripMenuItem_Click(object sender. //el nombre de la instancia se le asigna el formulario padre a este.Show().MdiParent = this. } private void perroToolStripMenuItem_Click(object sender.

Ademas en ventana podemos visualizar el o los formularios que se encuentren abiertos. el formulario que esta primero se seleccionara con un visto.Luego damos clic en otro formulario en este caso Pera y se nos abrira otro formulario hijo dentro del formulario Padre.8.. .

Aplicar y emplear el lenguaje C# para el desarrollo.     Utilizar nombres estandarizados. Construir módulos que valida el ingreso de datos para la integridad de la información Competencia General  Identificar los métodos a programar en la construcción de un sistema    Manejar controles que se pueden utilizar para que la interfaz gráfica sea amigable. Utilizar programación modular.Semana N° 9 Día 2: Clase 18 CLASE N°: TIEMPO: FECHA: DOCENTE GUÍA: TEMA DISCUTIDO: Contenidos  Windows Forms 18 2 Horas 24/07/2013 Ing.Hubieron exposiciones de Compañeros Cada estudiante iba haciendo sus prácticas de cada tema expuesto   Busquedad de Registros Formulario Maestro Detalle Descriptores Analizados .Busqueda de registros Formulario Maestro Detalle . documentación y sangría para facilitar la posterior lectura del código. Programar métodos que muestren características de bajo acoplamiento y alta cohesión. Mariuxi Paola Zea Ordoñez UNIDAD III: CONCEPTO DE INTERFAZ GRÁFICA DE USUARIO Y PROGRAMACIÓN EN C# PERÍODO 22/07/2013 al 26/07/2013  Manejo de Excepciones en Visual Estudio C# Objetivos de Desempeño  Crear interfaces gráficas amigables y flexibles. comentarios. Crear funciones utilizando datos por valor y referencia. implementación y mantenimiento de los sistemas. Datos Interesados Discutidos Actividades Durante la Clase .

Se le asigna automáticamente un número consecutivo (número de registro) que en ocasiones es usado como índice aunque lo normal y práctico es asignarle a cada registro un campo clave para su búsqueda. Pues bien un concepto el cual nos interesa es la búsqueda con respecto a la informática resulta ser aquel sistema informático que busca archivos que se encuentran guardados en diversos servidores o en algunas bases de datos. se encuentra ubicado por delante de la tecnología que tiene un buscador tradicional. Uno de los sistemas más complejos cuando de recuperar información se trata. Se refiere a la acción de búsqueda de un archivo o documento en un conjunto de campos perteneciente a una base de datos. la búsqueda bibliográfica. entre otras. por un lado. los buscadores web emplean este tipo de metodología. la búsqueda de una persona.BUSQUEDA DE REGISTROS Primeramente para poder conceptualizar que es una búsqueda de registro debemos tener bien en claro algunos conceptos principales es por eso que nos eso visto en la necesidad de definirlos a continuación. por la complejidad que mencionamos. a la investigación o estudio de documentación. y también se llama búsqueda. BÚSQUEDA DE REGISTRO Una vez definidos estos conceptos tenemos una idea clara de lo que es una búsqueda de registro. QUE ES UN REGISTRO? Un registro es un conjunto de campos que contienen los datos que pertenecen a una misma repetición de entidad. PROGRAMA DE BÚSQUEDA DE REGISTRO INTERFAZ INICIO . Consiste en extraer de los documentos un mínimo fragmento de texto el cual responde a una pregunta que se hace en el lenguaje corriente natural. por ejemplo una máquina o una función especializada para tal efecto. El mismo. QUE ES UNA BUSQUEDA? La palabra búsqueda refiere. básicamente porque busca información en una cantidad inmensa de documentos. la acción de buscar que despliega alguien o una cosa.

por ejemplo. CÁLCULOS Una factura bien hecha debería contener los siguientes elementos en el orden establecido: Datos identificativos del profesional que presta los servicios: nombre completo. la factura 98 no puede tener una fecha anterior a la 97. DETALLE. Cantidad total a percibir: la suma del importe inicial. Número de factura: todas las facturas han de ir numeradas de forma correlativa. Importe del IVA: cantidad resultante de aplicar al importe 12%. APUNTES DE CLASE . Fecha de la factura: también hay que tener en cuenta que las fechas de las facturas han de ir de acuerdo a su numeración. es decir. domicilio y Razón social. Forma de pago.FORMULARIOS MAESTRO. es decir. Concepto de la factura: breve descripción de los productos o servicios prestados. más el importe del IVA. Reflexionar ¿Qué cosa fueron difíciles?  Todo estuvo bien explicado ¿Qué cosas fueron fáciles?  Realizar las practicas ¿Por qué?  Debido a que las Exposiciones estuvieron bien explicadas se pudieron desarrollar los talleres ¿Qué Aprendí Hoy? A usar los componentes que vienen en visual Estudio 2010. no se puede saltar del número 93 a la 98.

la cual contendrá los registros que se van a acceder.1. Luego damos clic en la opción Ver.BÚSQUEDA DE REGISTROS PASOS PARA REALIZAR LA PRÁCTICA CREAR LA BASE DE DATOS 1. Para llevar a cabo la práctica. para esto. Luego procedemos a crear una tabla de nombre ―Personal‖ 1. hacemos lo siguiente: 1. Abrimos Microsoft Access y damos clic en la opción Nuevo y le colocamos un nombre 1.3.2. iniciamos con la creación de la base de dato. y seleccionamos ―Diseño‖ .

4. procedemos a llenar la tabla con los registros que nosotros queramos y guardamos los cambios efectuados.1. Para continuar. para ello haremos 7 campos. . Una vez que fijemos los tipos de datos. de la siguiente manera: 1. debemos crear los campos en la tabla.5.

CREAR EL FORMULARIO 2. Y luego arrastramos los componentes de manera que se parezca a la que se muestra a continuación: 3. Los nombres de las variables de cada componente se detallan a continuación: COMPONENTES (nombre de variables) Label Button 7: button2 2: comboBox2 5: lregistros 6: lerror 27: button4 19: csueldo 28: button1 21: cfecha 29: button3 24: cordenacion 12: tciudad 13: ttelefono DateTimePicker 11: tfecha 25: asc 22: fdate1 26: desc 23: fdate2 (oculto) 18: fciu 4: dataGridView1 17: fape 16: fnom RadioButton Datagridview 14: tsueldo 15: fced 10: tapellido 9: tnombre 8: tcedula ComboBox 1: comboBox1 TextBox 3: tbuscar . Primero debemos crear un nuevo Proyecto y ponerle el nombre que nosotros queramos.

de la siguiente manera: 4.3.2. comboBox1 4. comboBox2 (Deshabilitar)  4. csueldo .1. Procedemos a llenar los componentes ComboBox.20: fsue 4.

5. nos vamos a vista código y realizamos lo siguiente: Declaramos tres variables globales: DataRow (dr). Del mismo modo se ajusta el tamaño del formulario y por último se llama al método llenarTabla(). Una vez que se haya finalizado con el ingreso de elementos de los ComboBox. en este caso que inicie con el valor de los elementos que se encuentran en la posición 0. Código: . el cual permitirá que realice las acciones al abrirse el formulario: Lo que haremos aquí será de especificar a los ComboBox el elemento que queremos mostrar como predeterminado.4. cfecha 4. OleDbConnection (con). int (totalRegistros).4. Una vez hecho esto. nos ubicamos en el método Form1_Load. cordenacion 5.

cordenacion. da. Después creamos un objeto de tipo DataAdapter y en los parámetros recibirá la conexión y la sentencia SQL. 477).accdb"). cfecha. "Personal"). csueldo.SelectedIndex = 0.SelectedIndex = 0.ACE.OLEDB. OleDbConnection con. lo que hará es llenar el dataGridView1 con los registros de la base de datos. El método llenarTabla(). comboBox2.SelectedIndex = 0. Código: public void llenarTabla() { con = new OleDbConnection(@"Provider=Microsoft.SelectedIndex = 0.Size = new Size(391.12. con). la cual será seleccionar todos los registros de la tabla. DataSet ds = new DataSet(). . Primero se instancia la variable OleDbConnection y se ubica la ruta en donde se encuentra nuestra base de datos.Data Source=D:\BDEjemplo. OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM Personal". this. porque inicializa la variable total Registros con el número de filas que tenga el dataGridView1 y se coloca el número de registros en lregistros.SelectedIndex = 0. comboBox1. } 6.Fill(ds.0. EventArgs e) { llenarTabla(). int totalRegistros = 0. private void Form1_Load(object sender.DataRow dr.

} else { comboBox2.Enabled = true.DataSource = ds. } } 8.Text = "". entonces llamará a otro método busquedaSueldo(). } EVENTOS 7.Tables["Personal"].Rows. En caso que el tbuscar esté vacío. se llamará al método llenarTabla(). EventArgs e) { if (comboBox1. llamará al método filtarTabla() siempre y cuando no se elija el elemento en la posición 5 (sueldo). lregistros.Rows.Count-1) + " de " + totalRegistros.Enabled = false. tbuscar. . Si se eligió el elemento 5.1. Tendrá un bucle el cual vaciará la tabla y dependiendo del elemento que se seleccione en comboBox1. Código: private void comboBox1_SelectedIndexChanged(object sender. totalRegistros = dataGridView1.dataGridView1. Evento tbuscar Este evento hará que se llene el dataGridView1 con el resultado de la consulta a la base de datos dependiendo del campo que se haya seleccionado en comboBox1.SelectedIndex == 5) { comboBox2.Text = (dataGridView1.Count . Evento comboBox1 Este evento habilitará el comboBox2 al momento de seleccionar el elemento en la posición 5.

recibirá el campo que se eligió en comboBox1 y se armará la sentencia SQL.Text = "". i++) { dataGridView1.ToString()). else llenarTabla().Rows.Código: private void tbuscar_TextChanged(object sender. } } 9. se mostrará un mensaje en lerror. En caso de no hallar registros. dataGridView1.ToString()).1 > 0. la cual mandará a buscar en la tabla Personal aquellos campos que contengan parte de texto que se escribió en tbuscar.SelectedItem. else llenarTabla(). } if (comboBox1.Count .Text = "". if (tbuscar.Text != "") busquedaSueldo(comboBox2.SelectedIndex != 5) { lerror. El método filtarTabla().Text != "") filtrarTabla(comboBox1. Si se encontró registros se llenará el dataGridView1 y se actualizarán el número de registros en legistros. if (tbuscar. del mismo modo nos mostrará error cuando genere una excepción.RemoveAt(0). Código: . } else { lerror.Rows. EventArgs e) { for (int i = 0.SelectedItem.

Si se encontró registros se llenará el dataGridView1 y se actualizarán el número de registros en legistros. OleDbDataAdapter da = new OleDbDataAdapter(sql. lregistros.1) == 0) { lerror. if ((dataGridView1.OLEDB.Data Source=D:\BDEjemplo.Count .Tables["Personal"].Text = "¡No hay registros!". . "Personal").accdb"). con = new OleDbConnection(@"Provider=Microsoft. se mostrará un mensaje en lerror. la cual mandará a buscar en la tabla Personal aquellos registros que tengan el Sueldo especificado por el operador.12. dataGridView1.Text + "%'". con). da. DataSet ds = new DataSet().ACE.Fill(ds.1) + " de " + totalRegistros.DataSource = ds.Text = "¡No hay registros!". try { lerror.Count . <=. El método busquedaSueldo(). } } 10.0. >=) y se armará la sentencia SQL. recibirá el operador que se eligió en comboBox2 (<.Text = (dataGridView1.Rows. En caso de no hallar registros.Rows. =.Text = "". } } catch (Exception ex) { lerror. >.public void filtrarTabla(string campo) { //senetencia sql string sql = "SELECT * FROM Personal WHERE " + campo + " LIKE '%" + tbuscar.

Rows. Código: public void busquedaSueldo(string o) { string sql = "SELECT * FROM Personal WHERE Sueldo " + o + tbuscar.accdb"). if ((dataGridView1.Text = "¡No hay registros!".Fill(ds.Count .1) == 0) { lerror.Tables["Personal"]. "Personal").Count . OleDbDataAdapter da = new OleDbDataAdapter(sql. con = new OleDbConnection(@"Provider=Microsoft.Data Source=D:\BDEjemplo.del mismo modo nos mostrará error cuando genere una excepción.DataSource = ds.Text. try { lerror.ACE.12. lregistros.Text = "".0.Rows. DataSet ds = new DataSet().OLEDB. } } catch (Exception ex) { lerror. Evento dataGridView1 Este evento mostrará en las cajas de texto el registro que se haya encontrado mediante la consulta SQL donde la cédula sea igual al valor de la fila que se haya seleccionado . dataGridView1.1) + " de " + totalRegistros. con).Text = (dataGridView1. da. } } 11.Text = "¡No hay registros!".

CurrentRow. del mismo modo nos mostrará error cuando genere una excepción.ToString(). tfecha.Fill(ds.ToString(). ttelefono.Index]. tnombre. tsueldo. DataGridViewCellEventArgs e) { string sql = "SELECT * FROM Personal WHERE Cedula = '" + dataGridView1[0.Text = dr["Ciudad"].Text = dr["Sueldo"]. tciudad. } catch (Exception ex) { lerror. comboBox2.Text = dr["Apellido"]. DataSet ds = new DataSet(). OleDbDataAdapter da = new OleDbDataAdapter(sql. dataGridView1. tapellido.Text = dr["Telefono"]. da. dr = ds. se mostrará un mensaje en lerror.Rows[0].Text = dr["Cedula"].Value.Enabled = false. En caso de no hallar registros.mediante un clic.ToString()+ "'".Text = "".ToString().ToString().Tables["Personal"]. tcedula. tbuscar. "Personal"). con). } . Código: private void dataGridView1_CellClick(object sender.ToString().Text = dr["Nombre"].ToString().Text = dr["Fecha_nac"].ToString(). try { lerror.Text = "".Text = "¡No hay registros!".

EventArgs e) { busquedaAvanzada(). tbuscar. } 13. caso contrario. } 14. no se podrá visualizar éste dataTimePicker.Visible = true. Código: private void button2_Click(object sender. else fdate2. Evento cfecha Este evento hará visible el fdate2. Evento button4 Llamará al método busquedaAvanzada() Código: private void button4_Click(object sender.} 12. siempre y cuando el elemento que se haya seleccionado esté en la posición 4.Size = new Size(781. EventArgs e) { this. Evento button2 Este botón únicamente ajustará el tamaño del formulario y deshabilitará tbuscar.Enabled = false.Visible = false. . Código: private void cfecha_SelectedIndexChanged(object sender.SelectedIndex == 4) fdate2.477). EventArgs e) { if (cfecha.

fec2 = formatoFecha(fdate2. cs.ToString(). nom.SelectedItem.} El método busquedaAvanzada() Capturará en las variables string todos los valores que contenga cada TextBox.Text. ced = fced. fec1. cs = csueldo.Date). nom = fnom. sue = fsue. fec2. Del mismo modo la ordenación se verá afectado al seleccionar los valores en cordenacion y en asc/desc En caso de no hallar registros. sql. int cont = 0.Value. if (cf == "entre") cf = "BETWEEN". en base a esto. . fec1 = formatoFecha(fdate1. Código: public void busquedaAvanzada() { string ced.Text.Text. se mostrará un mensaje en lerror. ape. cf.ToString().Date). ciu. sue. la sentencia SQL se irá concatenando siempre y cuando los campos tengan un valor y no sean nulos.Text.SelectedItem.Value. sql = "SELECT * FROM Personal ". ciu = fciu. ape = fape. del mismo modo nos mostrará error cuando genere una excepción.Text. cf = cfecha.

if (cont == 1) sql += " WHERE Nombre LIKE '%" + nom + "%' ". if (cont == 1) sql += " WHERE Apellido LIKE '%" + ape + "%' ". else sql += " AND Nombre LIKE '%" + nom + "%' ". sql += " WHERE Cedula LIKE '%" + ced + "%' ". } . if (cont == 1) sql += " WHERE Ciudad LIKE '%" + ciu + "%' ". } if (nom != "") { cont++. } if (ciu != "") { cont++. else sql += " AND Apellido LIKE '%" + ape + "%' ". } if (ape != "") { cont++. else sql += " AND Ciudad LIKE '%" + ciu + "%' ".if (ced != "") { cont++.

SelectedItem. if (cont == 1) sql += " WHERE Sueldo " + cs + sue. else sql += " AND Sueldo " + cs + sue. if (campo != "(Sin ordenación)") { if (asc. } } String campo = cordenacion.ToString().if (sue != "") { cont++.Checked) sql += " ORDER BY " + campo + " ASC". } else { if (cf == "BETWEEN") sql += " AND Fecha_nac " + cf + "#" + fec1 + "# AND #" + fec2+ "# ". else sql += " AND Fecha_nac " + cf + "#" + fec1 + "# ". if (cont == 1) { if (cf == "BETWEEN") sql += " WHERE Fecha_nac " + cf + "#" + fec1 + "# AND #" + fec2 + "# ".Today) { cont++. . } if (fdate1.Date != DateTime.Value. else sql += " WHERE Fecha_nac " + cf + "#" + fec1+ "# ".

Text = (dataGridView1.Fill(ds. con = new OleDbConnection(@"Provider=Microsoft.DataSource = ds. convertirá a String la fecha que se ha colocado en el dateTimePicker1 Código: private string formatoFecha(DateTime dt) .Tables["Personal"]. } } catch (Exception ex) { lerror.Data Source=D:\BDEjemplo. OleDbDataAdapter da = new OleDbDataAdapter(sql.1) == 0) { lerror.Count .ACE.Rows. dataGridView1. } try { lerror.accdb").1) + " de " + totalRegistros.0.else sql += " ORDER BY " + campo + " DESC". lregistros. "Personal").Text = "¡No hay registros!". con).12.OLEDB. DataSet ds = new DataSet().Rows. da.Count . if ((dataGridView1.Text = "¡No hay registros!".Text = "". } } El método formatoFecha().

Evento button1 Lo que hará este evento es llamar al método llenarTabla () Código: private void button1_Click(object sender. EventArgs e) { llenarTabla(). } FUNCIONAMIENTO: EJEMPLOS En este ejemplo buscaremos los registros cuyo campo apellido contenga la palabra “ez” y seleccionaremos el primer registro que aparezca: . } 16. tbuscar.Day. } 15.Size = new Size(391.Enabled = true. Evento button3 Este evento ajustará el formulario para que su tamaño se reduzca y habilitará el tbuscar Código: private void button3_Click(object sender.Year + "/" + dt. EventArgs e) { this.477).{ return dt.Month + "/" + dt.

el campo sueldo sea menor o igual a 900 y lo ordenamos por sueldo de forma ascendente. seleccionamos el primer registro que aparezca: En este ejemplo buscaremos los registros cuyo campo cédula contenga ― 070”. el campo nombre contenga la letra “a” y lo ordenamos por apellido de forma descendente. seleccionamos el primer registro que aparezca: .En este ejemplo buscaremos los registros cuyo campo ciudad sea igual a “Machala”.

PRACTICA EN VISUAL C#: FACTURA MAESTRO DETALLE D A B C Hacemos click en el botón FACTURACION. E F G H Si no recordamos los códigos de producto podemos hacer click en INVENTARIO y doble click para agragar el producto a la factura. .

J .I Ingresamos la cantidad y aceptamos.

J). . B: BOTÓN FACTURACIÓN Debemos presionar este botón para empezar a facturar (E. donde encontramos los botones de. donde le agregamos una imagen. guardar factura.F.G. el botón es un control BUTTON.H). el botón es un control BUTTON. D: OPCIONES DE FACTURACIÓN Esta barra es un control TOOLSTRIP. imprimir factura y ayuda. abrir factura. C: BOTÓN INVENTARIO Debemos presionar este botón para visualizar el inventario de productos y agregar a la factura (I.DESCRIPCION DE LA INTERFAZ A: IMAGEN La imagen que presenta al iniciar el programa es el control PICTUREBOX. nueva factura.

F: NUMERO DE FACTURA Aquí tenemos los controles LABEL para poner (N°:) y un control TEXTBOX para el numero de factura y estos dos contenidos en un control GROUPBOX que nos permite por medio de un marco etiquetar a que pertenecen. NOMBRES. también encontramos tres controles BUTTON que por medio de imágenes representan BUSCAR. AÑADIR. G: DATOS DEL CLIENTE Tenemos los controles LABEL para poner (CI. GUARDAR respectivamente y un control DATETIMEPICKER para la fecha de factura. TELEFONO. H: DATOS DEL PRODUCTO . todos estos están contenidos en un control GROUPBOX que nos permite por medio de un marco etiquetar a que pertenecen. FECHA) y controles TEXTBOX.E: NOMBRE DE LA EMPRESA Estos datos se encuentran en un control LABEL. DIRECCION.

I: INVENTARIO DE PRODUCTOS Esta ventana nos aparece al hacer Click en el botón INVENTARIO (C). TOTAL) y TEXTBOX respectivamente. IVA 12%. se usa un control DATAGRIDVIEW conectado a una base de datos puesto en un segundo FORMULARIO (FORM). Por medio del evento datagridview_DoubleClick realizamos el proceso de hacer doble Click en algún artículo de Inventario. . y para mostrar los cálculos los controles LABEL (SUBTOTAL. J: CANTIDAD DE ARTÍCULOS Usamos un mensaje para pedir al usuario que ingrese la cantidad de artículos que desea facturar previamente el usuario hizo doble Click en algún artículo de Inventario.Dentro del control GROUPBOX con nombre ―DATOS DEL PRODUCTO‖ se encuentra en control DATAGRIDVIEW que nos permite mostrar los datos en una cuadrícula personalizable ya sea conectado a una base de datos o simplemente creando las filas y las columnas.

pictureBox1.Windows. EventArgs e) { panel1. public DataRow dr. using System. EventArgs e) { pictureBox1.Linq. public OleDbDataAdapter da.Drawing.Visible = true. using System.OleDb.TableDelegada(agregarFila). using System. } .Visible = false. inventario. public int contadorRegistrosFilas = 0. panel1. using System. public Form1() { InitializeComponent(). using System.ComponentModel. } /// BOTON FACTURACION private void button1_Click(object sender.Data. using System.CODIGO DE PRÁCTICA Form1: using System. public Form2 inventario = new Form2().Forms.Visible = false. public string stockNuevo.Visible = true.Generic. using System.Visible = false. } /// CARGA DEL FORMULARIO 1 private void Form1_Load(object sender.Data. public string puNuevo. public string codigoNuevo.Text. public DataSet ds.CreacionFila += new Form2.Collections. public string descripcionNuevo. using System. namespace ProgramacionIFactura { public partial class Form1 : Form { /// VARIABLES public OleDbConnection conexionD. btnGuardar.

Enabled = true. OleDbType.12.Show("Este Usuario ya existe"). Direccion.Enabled = true. 10)).Parameters.VarChar. conexionD.@adireccion.Text. busquedaCliente().ExecuteScalar()).Add(new OleDbParameter("@cedula". int count = Convert./// SENTENCIA QUE BUSCA EN LA TABLA CLIENTE.Text. txtTelefono.accdb").@atelefono)".0.ToInt32(comando. LOS ADEMAS DATOS SON ALMACENADOS EN LAS VARIABLESPARA LUEGO ENVIARLOS A LA BASE DE DATOS CON AYUDA DE DEL BOTON GUARDAR string setenciasql = "INSERT INTO CLIENTES (CedulaRuc. if (count != 0) { MessageBox. // asigno el valor al parametro .ACE.Add(new OleDbParameter("@acedula"./// ENVIO LA SENTENCIA Y LA RUTA comando.TEXT.Parameters["@cedula"]. //creo el parametro comando.VarChar. //Creando parametro de la colum. //PONER EN BLANCO LOS BOTONES } /// METODO QUE CONTIENE LA RUTA DEL ARCHIVO DE LA BASE DE DATOS public void conexion() { conexionD = new OleDbConnection(@"Provider=Microsoft. comando = new OleDbCommand(setenciasql.Open()./// EVENTO BUTTON_CLICK PARA BOTÓN NUEVO private void btnNuevo_Click_1(object sender.@anombre. comando. Nombre.Parameters["@acedula"]. 25)). Telefono) VALUES(@acedula. OleDbType. } else { // UNA VARIABLE CON LA SENTENCIA SQL EN EL CASO DE NO EXISTIR LA CEDULA QUE SE ESCRIBIO EN EL TXTCEDULA. } /// METODO PARA GUARDAR CLIENTES A LA BASE DE DATOS public void guardarCliente() { string sentenciaSQL = "Select COUNT(*) FROM Clientes WHERE CedulaRuc = @cedula".Value = txtCedula.Enabled = true. txtDireccion. comando.Value = txtCedula. conexionD). conexionD). EventArgs e) { btnGuardar. txtNombres.OLEDB.Parameters. SI LA CEDULA YA EXISTE OleDbCommand comando = new OleDbCommand(sentenciaSQL.Data Source=C:\Users\PAOLA\Desktop\PROGRAMACION FACTURA\Inventario.Visible = true.

Text.Show("Cliente Nuevo Guardado con Exito".Enabled = false. } } /// METODO PARA BUSCAR CLIENTES DE LA BASE DE DATOS public void busquedaCliente() { conexion().Count. OleDbType. } /// EVENTO BUTTON_CLICK PARA BOTÓN GUARDAR private void btnGuardar_Click_1(object sender.Value = txtDireccion.Parameters. comando. EventArgs e) { conexion(). comando. 35)).Parameters["@anombre"]./// SENTENCIA DE BUSQUEDA ds = new DataSet().ToString()./// METODO QUE CONTIENE LA VARIABLE DE CONEXION OleDbDataAdapter bd = new OleDbDataAdapter("select * from Clientes". OleDbType. 50)). txtNombres. txtTelefono. "Clientes").Text = dr["Telefono"].Enabled = false.VarChar. int filas = ds. bd.Information). //creo el parametro comando.ToString(). //asigna los valores de los campos en los objetos del formulario txtCedula.Tables["Clientes"].Parameters["@atelefono"]. txtTelefono.Tables["Clientes"]. //Mandar a guardar guardarCliente().ToString(). OleDbType. comando. dr = ds. comando.Close().Rows. txtNombres.comando.Enabled = false.Fill(ds.Visible = false.Value = txtTelefono.Add(new OleDbParameter("@atelefono".Text = dr["CedulaRuc"].Add(new OleDbParameter("@adireccion". 25)).ToString().Text. btnGuardar.Value = txtNombres.Parameters["@adireccion"]. } /// LINEA DE CÓDIGO QUE PERMITE QUE EL DATETIMEPICKER SOLO MUESTRE EL CALENDARIO HASTA LA FECHA ACTUAL .Text.OK. conexionD). MessageBoxIcon. comando.1].Add(new OleDbParameter("@anombre".Parameters. /// CIERRO LA CONEXION CON LA BASE DE DATOS MessageBox.Text = dr["Nombre"].VarChar. "NUEVO CLIENTE". comando.Connection.VarChar.Rows[filas .Text = dr["Direccion"]. txtDireccion.ExecuteNonQuery(). txtDireccion. MessageBoxButtons.Parameters.

private void dateTimePicker1_ValueChanged(object sender. valor). EventArgs e) { busquedaCliente().Value).Cells[4]. descripcion./// SUMA LOS VALORES DE LA COLUMNA 4(TOTAL) DE CADA FILA PARA OBTENER EL SUBTOTAL } . } /// EVENTO BUTTON_CLICK QUE MUESTRA EL FORM2 (INVENTARIO) private void button2_Click(object sender.Enabled = true. i < columnasTotals. cantidad.Enabled = true.Rows[i]. pu. txtDireccion. txtTelefono.Count.Visible = true.Show(). EventArgs e) { inventario. i++) { subtotal += Convert. EventArgs e) { dtpFecha./// ALMACENAMOS LA CANTIDAD DE COLUMNAS QUE TIENE EL DATAGRIDVIEW for (int i = 0.Add(codigo.ToDouble(dgProductos.Today.Parse(dgProductos. int cantidad) { double valor = cantidad * pu. String descripcion. } /// EVENTO BUTTON_CLICK PARA BOTON ACTUALIZAR private void btnActualizar_Click(object sender. EventArgs e) { txtNombres. calculos().MaxDate = DateTime. dgProductos. btnGuardar. double pu. int columnasTotals = int. } /// METODO QUE HACE LOS CALCULOS RESPECTIVOS public void calculos() { double subtotal = 0.ToString()). } /// METODO AGREGAR FILA QUE CAPTURA EL VALOR DE LOS PRODUCTOS DE CADA FILA DEL DETALLE DE PRODUCTOS Y LLAMA AL METODO CALCULOS() public void agregarFila(String codigo. } /// EVENTO BUTTON_CLICK QUE LLAMA A METODO BUSQUEDACLIENTE() private void btnBuscar_Click(object sender.Rows. double total = 0.Rows. double iva = 0.Enabled = true.

Parameters.Parameters. comando. OleDbType.Double)).txtSubtotal.Cells[0].ToInt32(dgProductos.@afecha. comando. total = subtotal + iva.Add(new OleDbParameter("@afecha". comando.ExecuteNonQuery().Text = subtotal. comando.Parameters["@asubtotal"]. } ///*** BOTON PARA ALMACENAR LA FACTURA ***//// private void saveToolStripButton_Click(object sender.@atotal)". OleDbType. @aiva.ToString().Cells[1].ToString().Value.| comando. conexionD).Double)). OleDbType.Text).Add(new OleDbParameter("@aiva". OleDbType. //cierra la coneccion int columnas = Convert. . int valor = Convert.Parameters.Parse(txtTotal. comando.//creo el parametro comando. Subtotal.Rows[i]. for (int i = 0.Text = total.Close().Parameters. txtIva.Rows[i]. comando.ToString().VarChar.Count.ToString().Value).Open().Cells[4].Value = txtCedula. comando.Value.Integer))./// ESCRIBIMOS EL RESULTADO EN EL TEXTBOX iva = (subtotal * 12) / 100. int cantidad = Convert. comando.Text). txtTotal. } private void dgProductos_UserDeletedRow(object sender.Add(new OleDbParameter("@acliente". comando.Value = Convert. comando.Parameters["@acliente"].Date)).ToString()).Text).ToInt32(txtNumeracion.Add(new OleDbParameter("@atotal".ToInt32(dgProductos.Add(new OleDbParameter("@asubtotal".ToInt32(txtSubtotal.@asubtotal.ToInt32(dgProductos.Parameters["@afecha"].Parameters["@anumFactura"]. int numFactura = Convert.//asigno el valOr comando.Value = dtpFecha.Value). OleDbCommand comando = new OleDbCommand(setenciasql.Text = iva. OleDbType. codigoProducto.Value = double.Connection. Cliente. Iva. // se habre la base de datos comando.Integer)).1. OleDbType.Parameters.Parameters["@aiva"].Text). Total) VALUES(@anumFactura. i < columnas . Fecha. EventArgs e) { conexion(). DataGridViewRowEventArgs e) { calculos().Connection.Rows. string setencia = "INSERT INTO DetalleFactura (numFactura.Parameters["@atotal"]. cantidad.ToInt32(txtNumeracion.Text.@acliente.Parameters. // se ejecuta el comando comando. string setenciasql = "INSERT INTO Factura (numFactura.Date.Value = double.Value = Convert.Text). i++) { string codigo = dgProductos. 10)).Rows[i].Parse(txtIva.Add(new OleDbParameter("@anumFactura".

Value = cantidad. ingreso.ToString(). OleDbType.VisualBasic. ingreso.Value = codigo.Close(). ingreso. string fecha = dtpFecha.Text.Connection.Value = numFactura.Text. conexion().Integer)).Text. MessageBox.Integer)). // / CON ESTE DATO REALIZAMOS LA CONSULTA PARA EL DETALLE DE LA FACTURA MessageBox.Text. string direc = txtDireccion. string subtotal =txtSubtotal.conexionD).@avalorTotal)".ToString().Parameters["@acantidad"]. string numeracion = txtNumeracion. ingreso.ToString(). OleDbCommand comando = new OleDbCommand(sentencia.Parameters["@anumFactura"]. } MessageBox. ingreso.Add(new OleDbParameter("@acantidad".Show(cedula). string iva = txtIva. string total = txtTotal.ToString().@acodigoProducto. ingreso.Parameters.Add(new OleDbParameter("@anumFactura". ingreso.Read() == true) { numFactura = leer["numFactura"].ExecuteReader().Connection. EventArgs e) { string numFactura = Microsoft.ExecuteNonQuery().Show("Guardado Exitoso"). OleDbType.InputBox("Ingrese Numero de Factura"). . ingreso. OleDbDataReader leer = comando. ingreso. if (leer.Parameters.Parameters["@acodigoProducto"]. ingreso.ToString()).Text.Add(new OleDbParameter("@avalor".Integer)). fecha = leer["Fecha"].Open(). OleDbType.ToString(). } ///*** BOTON PARA ABRIR UNA FACTURA ***//// private void openToolStripButton_Click(object sender.valorTotal) VALUES(@anumFactura.Open(). string telf = txtTelefono.Parameters["@avalor"].Text. conexionD.Add(new OleDbParameter("@acodigoProducto".Value = valor.@acantidad.ToString().Text.Parameters.VarChar)).Text.ToString()./// aparece automaticamente para inh string cedula = txtCedula.Parameters. OleDbCommand ingreso = new OleDbCommand(setencia.ToString().Interaction.ToString().Text. OleDbType. cedula = leer["Cliente"].ToString(). // se ejecuta el comando ingreso. conexionD). string nombres = txtNombres. /// PRIMERO SE REALIZA LA BUSQUEDA POR EL NUMERO DE FACTURA PARA LUEGO USAR LOS DATOS DE LA TABLA FCTURA QUE CONTIENEN UN CAMPO cliente /// string sentencia = "Select * From FACTURA Where numFactura = '" + numFactura + "'".Show(leer["numFactura"].

iva=leer["Iva"].Generic. double pu. using System.Show(fecha). public int stock. using System.Text. public String [] Vector= new string[100].ComponentModel.Linq. using System. using System. public double pu. string descripcion. using System. //Cargar Datos de la de los productos datosConexion(). //Evento public event TableDelegada CreacionFila. public String codigo.OleDb.Collections.Forms. } conexionD.Data. using System. public Form2() { InitializeComponent().Show("Factura no Existe"). } else { MessageBox. public String descripcion. } } } Form2 (Contiene el Stock de productos): using System.ToString(). subtotal = leer["Subtotal"]. total = leer["Total"].Drawing. using System. using System.Data.MessageBox.ToString(). int cantidad).ToString().Close(). namespace ProgramacionIFactura { public partial class Form2 : Form { // Delegado public delegate void TableDelegada(string codigo. } public void datosConexion() { OleDbConnection conexionD = new .Windows.

ToString()).ToString(). DataSet ds = new DataSet(). . do { if (Vector[i]. } i = i + 1.Add(codigo. codigo = dgInventario[0.VisualBasic.Rows. Vector[0] = codigo.12.ToString().Value.Parse(cantidad)).Rows[i]. pu.Rows.Interaction. dgInventario. Cantidad debe ser Mayor que 0>"). No hay cantidad en Stock> <2.OleDbConnection(@"Provider=Microsoft. DataRow dr.Value. bd.Value. i++) { dr = ds. "Productos").CurrentRow.Count.Index].ToString().Parse(cantidad) > stock || int. voy al explorador de soluciones y doy clic derecho donde dice referencias y busco visualBasic doy clic en aceptar //y listo puedo escribir la linea de arriba if (stock == 0 || int.Parse(dgInventario[3. dgInventario. string stock = dr["Stock"].accdb").ToString().Value.Show("Error: <1.CurrentRow.InputBox("Ingrese Cantidad"). } else { int i=0.0.Tables["Productos"]. } else { if (Vector[0] == null) { //No se ha ingresado nada a la columna //Si se puede vender this. stock). OleDbDataAdapter bd = new OleDbDataAdapter("select * from Productos". descripcion. string pu = dr["Pu"].Parse(cantidad)<=0) { MessageBox. } } private void dgInventario_DoubleClick(object sender. // int j = 0. dgInventario.Fill(ds. aux = 1.ToString().dgInventario. for (int i = 0. string descripcion=dr["Descripcion"].Index]. descripcion.CurrentRow.CreacionFila(codigo. descripcion = dgInventario[1.Equals(codigo)) { MessageBox.Show("No se puede Agregar Ya esta en lista"). } while (Vector[i] != null).Index]. string codigo=dr["CodigoProducto"]. if (aux != 1) { Vector[i] = codigo.Tables["Productos"].//para esto hice en //1. int filas = ds. pu. stock = int.OLEDB. i < filas-1. dgInventario.ToString().Index].Data Source=C:\Users\Compac\Desktop\PROGRAMACIONFACTURA\Inventario. pu = Double.Parse(dgInventario[2. EventArgs e) { int aux=0.ACE. String cantidad = Microsoft.CurrentRow.ToString()). conexionD). int.

pu.this. descripcion.Parse(cantidad)).CreacionFila(codigo. } } } } } } . int.

Hubieron exposiciones de Compañeros .  Crear funciones utilizando datos por valor y referencia. implementación y mantenimiento de los sistemas. desde el punto de vista diseño. El panorama del desarrollo de aplicaciones .  Aplicar y emplear el lenguaje C# para el desarrollo.Servicios WEB . documentación y sangría para facilitar la posterior lectura del código. En resumen podríamos decir:   Son componentes que nos permiten crear aplicaciones independientes de la plataforma.Validacion de Usuarios CREAR SERVICIOS WEB El desarrollo de aplicaciones en entorno Internet ha pasado por distintas etapas desde los inicios con el protocolo HTTP.Net se caracteriza por la gran sofisticación que han alcanzado los servidores y las herramientas de desarrollo asociadas. Por un lado.  Construir módulos que valida el ingreso de datos para la integridad de la información Competencia General  Identificar los métodos a programar en la construcción de un sistema  Manejar controles que se pueden utilizar para que la interfaz gráfica sea amigable. Se pueden usar servicios Web para integrar aplicaciones escritos en lenguajes .  Utilizar programación modular.  Programar métodos que muestren características de bajo acoplamiento y alta cohesión.Semana N° 10 Día 1: Clase 19 CLASE N°: TIEMPO: FECHA: DOCENTE GUÍA: TEMA DISCUTIDO: 19 2 Horas 29/07/2013 Ing. Mariuxi Paola Zea Ordoñez UNIDAD III: CONCEPTO DE INTERFAZ GRÁFICA DE USUARIO Y PROGRAMACIÓN EN C# PERÍODO 29/07/2013 al 02/08/2013 Contenidos  Windows Forms  Manejo de Excepciones en Visual Estudio C# Objetivos de Desempeño  Crear interfaces gráficas amigables y flexibles. Datos Interesados Discutidos Actividades Durante la Clase . en el que contamos con herramientas visuales de todo tipo y editores HTML que vacían las delicias de los viejos programadores de ‗Bloc de Notas‘.Cada estudiante iba haciendo sus prácticas de cada tema expuesto  Servicios Web  Validacion de usuarios Descriptores Analizados . comentarios.  Utilizar nombres estandarizados. los navegadores y los documentos HTML.

VALIDACION DE USUARIOS La validación de usuarios o Autenticación es.diferentes. al igual que hacer una referencia a un componente. El acceso a él por lo tanto es controlado generalmente insistiendo en un procedimiento de la autentificación para . En la práctica. Comportamiento de una aplicación Windows Las aplicaciones Windows. Un ejemplo familiar es el control de acceso. hacen referencia a un servicio Web. Un sistema informático supuesto para ser utilizado solamente por aquellos autorizados. lo cual permite asignarles restricciones a dichas personas. debe procurar detectar y excluir el desautorizado. El objetivo de los sistemas de identificación de usuarios no suele ser identificar a una persona. La Dirección: Una dirección de red junto con un binding de protocolo que puede utilizarse para acceder al servicio. Los servicios Web pueden involucrarse dentro de ella haciendo referencia al servidor de servicios Web mediante una referencia Web. El Documento XML: Contiene toda la información específica de la aplicación que el consumidor del servicio envía al servicio para procesar. la autorización que tienen las diferentes personas que manipulan el sistema. Por ejemplo: un usuario puede observar datos mas no dar mantenimiento al sistema. en cambio un administrador tiene acceso a todos los datos disponibles dentro del mismo.Net Comportamiento de un Aplicación Web Una aplicación Web es aquella en la que los usuarios se conectan a través de un servidor Web mediante una Intranet o Internet. hace falta un cuarto elemento: La Envoltura: Un protocolo de encapsulación de mensajes que separa el documento UML de la otra información que se quiere intercambiar. en otras palabras. sino autenticar que esa persona es quien dice ser realmente. Herramientas de desarrollo para un Web Services   Usando un editor de textos o WebMatrix Usando Visual Studio. Un servicio Web consta de los siguientes 3 elementos: El Servicio: Software que procesa ciertos documentos XML bien definidos recibidos mediante alguna combinación de protocolos de transporte y de aplicación. de igual modo. ya que poseen la opción de hacer referencia Web que cargara todas las funcionalidades que nos proporcionaran.

Hay ediciones difíciles que están al acecho debajo de qué aparece ser una superficie directa. ciertos usuarios tendrán los privilegios para acceder a las funciones del sistema. Ninguna computadora. o poder del usuario de la computadora ―confirman la identidad‖ de otro partido. Los menús contextuales.establecer con un cierto grado establecido de confianza la identidad del usuario. Parte de esta confusión puede ser debido ―al tono de la aplicación de ley‖ de mucha de la discusión. En nuestro proyecto. MANEJO DE MENUS Para ser más específicos. No es posible ―establece‖ o ―probar‖ una identidad. . proporcionan opciones para el área del cliente o el control en la ubicación del puntero del mouse. cualquiera. APUNTES DE CLASE EJERCICIO PRACTICO: Servicios WEB GENERAR UN NUMERO DE LOTERIA Creamos un nuevo proyecto Windows forms aplication. es decir. los usaremos como se los utilizaría dentro de la validación de usuarios. Reflexionar ¿Qué cosa fueron difíciles?  Todo estuvo bien explicado ¿Qué cosas fueron fáciles?  Realizar las practicas ¿Por qué?  Debido a que las Exposiciones estuvieron bien explicadas se pudieron desarrollar los talleres ¿Qué Aprendí Hoy? A usar los componentes que vienen en visual Estudio 2010. por lo tanto concediendo esos privilegios como puede ser autorizado a esa identidad. programa de computadora. Sin embargo. los menús contextuales aparecen en la posición del mouse. Control de un computador remoto sin Internet. Uso de un sistema Internet banking. cuando el mouse hace clic sobre el botón secundario. observar que mucha de la discusión sobre estos asuntos es engañosa porque los términos se utilizan sin la precisión. el control Context Menú Strip es un control que proporciona un menú contextual. Los ejemplos comunes del control de acceso que implican la autenticación incluyen: - Retirar de dinero de un cajero automático.

1 button Ahora deberemos proceder a importar nuestro webservice que vamos a consumir de la red.Procedemos a crear : 4 labels 4 textbox pero uno de ellos le habilitaremos la propiedad multilinea. .

Escribimos la dirección web de la cual vamos a importar el webservice y damos clic en go. allí nos daremos cuenta los métodos con los cuenta nuestro webservice. .

Presentamos en el último textbox el número se generó. También creamos variables de tipo entero y le asignamos el valor que se ingrese en cada una de los textbox.Ahora creamos un objeto del servicio que importamos. .

Creamos un nuevo proyecto de Aplicación Web de ASP.EJERCICIO 2: Desarrollar una aplicación Web que permita el ingreso eliminación y búsqueda de estudiantes en usa Base de Datos de Microsoft Access haciendo uso de servicios web 1. Seguido creamos los métodos necesarios para nuestra aplicación que se detallan a continuación .Net 2.

Buscar Eliminar .

Una vez codificados los métodos y si ejecutamos el servicio tendremos lo siguiente .Insertar BuscarTodo 3.

5. Creamos un nuevo proyecto de tipo Aplicación Web de ASP.4.NET para poder consumir los servicios creados. Diseñamos un formulario Web sencillo como el que presentamos a continuación .

Seguidamente agregamos a nuestro proyecto la referencia Web para poder hacer uso de los servicios creados en el paso 2.6. nos situamos sobre el explorador de soluciones y damos clic derecho sobre referencias y damos cli en agregar referencia Web. Dirección URL del servicio web Métodos del servicio web Agregamos la Referencia Web al proyecto .

Enabled = false. btncancelar.Text. nota2.Enabled = false. EventArgs e) { String nombre = txtnombre. EventArgs e) { actualizar(). actualizar(). txtnota3. protected void Page_Load(object sender. Codificación de los eventos del formulario namespace Cliente_web { public partial class WebForm1 : System.Page { localhost.Text = "".Equals("") || nota1.Equals("")) { lblmensaje.Text. } protected void btnregistrar_Click(object sender.Text = "". nota1.Text = "".SelectedValue.Web. } else { lblmensaje. txtnota2.Text. String nota1 = txtnota1.Trim().Enabled = true. null). txtnombre. curso. txtnota2.Enabled = false. . } else { if (servicio. nota3)) { lblmensaje.Text.Text = "Alumno Registrado".Trim(). lista.UI. txtnota1. String curso = (String)lista. String nota3 = txtnota3.7.Equals("") || nota2. if (nombre.Trim().Text = "Alumno no Registrado". btncancelar_Click(null.Text = "Llene todos los campos !".Enabled = false.Insertar(nombre. String nota2 = txtnota2.Equals("") || nota3.Service1 servicio = new localhost. btnregistrar.Enabled = false. btnnuevo.Enabled = false.Service1(). txtnota3. txtnota1.Text = "". } txtnombre.Enabled = false.

Equals("")) { if (servicio.Buscar(texto.Trim().DataBind(). if (servicio.Text. ref ds)) { GridView1.Text = "Alumno Eliminado".Enabled = true.Text = "No hay registros".Enabled = false. btnregistrar.Text = "Alumno no Eliminado". } protected void btnbuscar_Click(object sender. } else { DataSet ds = new DataSet(). GridView1. . } else { lblmensaje.Text = "Ingrese un Id para eliminar".Text = "Ingrese datos para buscar". } } else { lblmensaje. } actualizar().Eliminar(id)) { lblmensaje. if (!id. } else { lblmensaje. EventArgs e) { String id = txteliminar.Equals("")) { lblmensaje. actualizar().Trim(). if (texto. EventArgs e) { btnnuevo.DataSource = ds.Text. lblmensaje. } } } protected void btnnuevo_Click(object sender.} } protected void btneliminar_Click(object sender. EventArgs e) { String texto = txtbuscar.Text = " ".

Enabled = true. EventArgs e) { try { if (Convert.Enabled = true.DataSource = ds. } protected void lista_SelectedIndexChanged(object sender.Enabled = false.Enabled = true. txtnota3. GridView1. txtbuscar. btncancelar.Text) <= 1000)) { } .Enabled = true.ToInt32(txtbuscar.Enabled = false.Enabled = false.Enabled = false.Enabled = true. servicio.ToInt32(txtbuscar.Enabled = false.Enabled = false.Enabled = false.txtnombre. txtnota2.Enabled = false.DataBind(). btnbuscar.Enabled = true.Enabled = true. EventArgs e) { txteliminar.Enabled = false.Enabled = true. EventArgs e) { } protected void txtbuscar_TextChanged(object sender.Enabled = true. lista. txtbuscar. btnregistrar. } protected void btncancelar_Click(object sender.Enabled = false. } public void actualizar() { DataSet ds = new DataSet(). txtnota1.Enabled = true.BuscarTodo(ref ds). txtnombre. btnnuevo.Text) >= 0 && (Convert. btnbuscar. txtnota2.Enabled = true. btneliminar. txtnota3. GridView1. btneliminar. txtnota1. btncancelar.Enabled = false. txteliminar. lista.

Text = "". } } } 8. } } catch (Exception) { txtbuscar.Text = "".else { txtbuscar. Compilación y pruebas del Formulario .

el cual se lo realizara arrastrando los componentes necesarios para este formulario (Textbox. el que se tendrán dos tipos de acceso (USUARIO Y ADMINISTRADOR): 1. Label.Ejemplo Validación de Usarios: Se realizara un programa para validar o controlar el acceso de los usuarios al sistema. Creamos nuestro proyecto Seleccionamos Windows Form Aplication 2. . Button). Primero crearemos el formulario de usuario y contraseña.

se creara el formulario para controlar el ingreso de los usuarios. Primero agregaremos un DataGridView en el Form2 . seleccionamos agregar Windows Forms: 4.3. Ahora. para crear un nuevo formulario realizamos lo siguiente: Damos clic en el menú proyecto.

se manejaran menús. Dentro de los menús podemos colocar teclas de acceso rápido lo cual se hace lo siguiente: a. procedemos a escribir los menús que se utilizaran en el programa: 7. crearemos un pequeño formulario debajo del DataGridView. Dentro de cada menú le colocamos el método de teclas de acceso. También. Dentro del Form2. la cual se la realiza por la propiedades Short Curt Key que heredan todos los menú : .5. los mismos que se insertan de la siguiente manera: Una vez insertado el MenuStrip en el formulario. el cual se lo utilizara para la edición de datos del DataGridView: 6.

8. La otra manera de colocar un icono dentro de los menús es dentro de la ventana de propiedades. c. Por último. el mismo que quedaría de la siguiente manera: .b. se necesitara de un formulario para poder actualizar los datos del usuario que ingresa al sistema. También se colocan iconos en cada menú el cual se lo puede realizar dándole clic derecho al menú y eligiendo la opción Elegir Imagen.

Se creara una nueva clase. elegimos agregar y a su vez Nuevo elemento En el dialogo. a la que llamaremos conexión: Le damos clic derecho en la solución de nuestro proyecto. 9.Una vez hechos los formularios. elegimos la opción Clase y ponemos el nombre de conexión . que permita el manejo de la base de datos para el sistema. necesitaremos de una base de datos y a su vez de una clase que maneje todas las sentencias sql.

ds = new DataSet(). public static OleDbDataAdapter da. lo primero que vamos a hacer es crear los métodos en la clase conexión. y tendrá que tener los siguientes campos: 11. public static OleDbCommand comando. Crearemos una clase en Acces. public String tipo.accdb"). //Se llena el dataset . con).12. public conexion() { //se establece la conexion a la base de datos con = new OleDbConnection(@"Provider=Microsoft. public static String sql. public String nombre.OLEDB.cs: Instanciamos variables globalmente: public static DataRow dr.Data Source=C:\Users\Personal\Desktop\Programacion\Datos.0. Ahora. entrando en la parte lógica del sistema. el cual será visualizado en el DataGrdiView del form2: public static DataTable llenar_tabla() { da = new OleDbDataAdapter("SELECT * FROM Personal".10. public static OleDbConnection con.ACE. } Crearemos un método que nos retorne un modelo de tabla. public static DataSet ds.

String cont){ int numDatos = 0.ToString(). return ds.Tables["Personal"]. da. con). }else{ return true.Fill(ds.da. try{ da = new OleDbDataAdapter(sql.ToString().Fill(ds. numDatos =ds. tipo = dr["Tipo"]. ds = new DataSet(). sql = "SELECT * FROM Personal WHERE Cedula='" + id + "' AND Pass='" + cont + "'".Tables["Personal"]. //retorna las tablas de dataSet } El método ValidacionIngreso controla la entrada de los datos de los usuarios al iniciar sesión public Boolean ValidacionIngreso(String id. nombre = dr["Nombre"]. } } .Tables["Personal"]. "Personal"). }catch(Exception e){ } if ((numDatos) == 0)//si no hay filas . "Personal").Rows[0].Count dr = ds.Rows. no encontro datos { return false.

 Programar métodos que muestren características de bajo acoplamiento y alta cohesión. cuando se utiliza una consulta de acción para eliminar registros o cambiar datos.  Utilizar nombres estandarizados.Cada estudiante iba haciendo sus prácticas de cada tema expuesto  Respaldar y restaurar archivos Descriptores Analizados .Respaldar y restaurar archivos Respaldar y restaurar una base de datos Respaldo de Base de Datos Según la página de Microsoft (2013) ―Indica que el respaldo ayuda a proteger una base de datos frente a problemas del sistema y a errores que el comando Deshacer no puede resolver En Microsoft Office Access 2007. Es esencial realizar copias de seguridad periódicas Para decidir con qué frecuencia debe realizar copias de seguridad.  Crear funciones utilizando datos por valor y referencia.Hubieron exposiciones de Compañeros .  Utilizar programación modular. no puede deshacer esos cambios con el comando Deshacer.  Construir módulos que valida el ingreso de datos para la integridad de la información Competencia General  Identificar los métodos a programar en la construcción de un sistema  Manejar controles que se pueden utilizar para que la interfaz gráfica sea amigable. Datos Interesados Discutidos Actividades Durante la Clase .  Aplicar y emplear el lenguaje C# para el desarrollo. puede usar el comando Deshacer 20 veces como máximo para revertir los cambios que ha realizado desde la última vez que guardó el archivo de base de datos. comentarios. Mariuxi Paola Zea Ordoñez UNIDAD III: CONCEPTO DE INTERFAZ GRÁFICA DE USUARIO Y PROGRAMACIÓN EN C# PERÍODO 29/07/2013 al 02/08/2013 Contenidos  Windows Forms  Manejo de Excepciones en Visual Estudio C# Objetivos de Desempeño  Crear interfaces gráficas amigables y flexibles. documentación y sangría para facilitar la posterior lectura del código.Semana N° 10 Día 2: Clase 20 CLASE N°: TIEMPO: FECHA: DOCENTE GUÍA: TEMA DISCUTIDO: 20 2 Horas 31/07/2013 Ing. considere la frecuencia con la que cambia la base de datos: . Sin embargo. implementación y mantenimiento de los sistemas.

Abra la base de datos en la que desea restaurar un objeto. o se utiliza sólo como referencia y apenas cambia. debe hacer copias de seguridad periódicamente. debe cambiar el nombre del objeto antes de restaurarlo. una copia de la que está seguro de su diseño y de la integridad de sus datos. . Para obtener más información sobre cómo planear y crear copias de seguridad de bases de datos. Restaurar una base de datos completa Cuando se restaura una base de datos completa. existe el peligro de que se pierdan datos. Si desea reemplazar un objeto que contiene datos erróneos o inexistentes. sino que utiliza tablas vinculadas. debe realizar una copia de seguridad cada vez que cambien los datos. Debe usar el comando Realizar copia de seguridad de la base de datos de Microsoft Office Access para hacer copias de seguridad. siga uno de estos procedimientos: Si desea conservar el objeto actual (por ejemplo. Por este motivo. si desea restaurar un formulario dañado denominado Desprotección. o que ha dejado de funcionar correctamente.‖ Restaurar una base de datos Según la página de Microsoft(2013) ―Para restaurar una base de datos. como una tabla eliminada por error. Puede restaurar varios objetos a la vez. Si desea restaurar un objeto que falta. es decir. el objeto se importa de la copia de seguridad a la base de datos que contiene (o al que le falta) el objeto que desea restaurar. por una copia de seguridad de toda la base de datos. coloque la copia de seguridad en la ubicación donde debe estar la base de datos. se reemplaza el archivo de base de datos que está dañado. Si la base de datos está activa y los datos cambian frecuentemente. Por ejemplo. se efectúen cambios no deseados o se dañe el diseño de la base de datos. Si no dispone de una copia de seguridad. vea el artículo Hacer una copia de seguridad de una base de datos. puede cambiar el nombre del formulario dañado aDesprotección_inservible. Si no dispone del archivo de base de datos.Si la base de datos es una base de datos de archivo. debe realizar una copia de seguridad según una programación. que tiene problemas en los datos o que falta. pero puede usar cualquier copia válida conocida para restaurar una base de datos. Por ejemplo. puede restaurar una base de datos a partir de una copia almacenada en un dispositivo USB externo de copia de seguridad. debe disponer de una copia de seguridad de la base de datos. Restaurar parte de una base de datos Para restaurar un objeto de base de datos. Puede restaurar toda la base de datos o algunos de sus objetos. Una copia de seguridad recibe a menudo el nombre de "copia válida conocida" de un archivo de base de datos. debe realizar una copia de seguridad de la base de datos siempre que cambie su diseño. vaya al paso 3. Si la base de datos no contiene datos. para compararlo con la versión restaurada cuando finalice la operación).

y no hay límite de tamaño.) dependiendo del sistema que se use. CORREOS ELECTRÓNICOS ¿De qué trata? Es un servicio de red que permite a los usuarios enviar y recibir mensajes y archivos rápidamente (también denominados mensajes electrónicos o cartas electrónicas) mediante sistemas de comunicación electrónicos. etc. Asunto: una descripción corta que verá la persona que lo reciba antes de abrir el correo. o incluir formato. mediante el protocolo SMTP. Por medio de mensajes de correo electrónico se puede enviar.Elimine el objeto que desea reemplazar. aunque por extensión también puede verse aplicado a sistemas análogos que usen otras tecnologías. Su eficiencia. APUNTES DE CLASE Respaldar una base de datos en Sql Server Para crear una base de datos en SQL Server Respaldar Restaurar Base de datos Desde Microsoft Visual C# . músicas. El propio mensaje: Puede ser sólo texto. no solamente texto. conveniencia y bajo coste están logrando que el correo electrónico desplace al correo ordinario para muchos usos habituales. Reflexionar ¿Qué cosa fueron difíciles?  Todo estuvo bien explicado ¿Qué cosas fueron fáciles?  Realizar las practicas ¿Por qué?  Debido a que las Exposiciones estuvieron bien explicadas se pudieron desarrollar los talleres ¿Qué Aprendí Hoy? A usar los componentes que vienen en visual Estudio 2010. Estructura General Destinatario: una o varias direcciones de correo a las que ha de llegar el mensaje. sino todo tipo de documentos digitales (imágenes. Adjunto: Cualquier tipo de archivo que se desee enviar. Principalmente se usa este nombre para denominar al sistema que provee este servicio en Internet.

Para hacer un respaldo de cierta base de datos se realiza lo siguiente:  En primer lugar creamos la base de datos en SQL Server 2008 como observaremos a continuación:  Después de abierto el SQL Server 2008 nos conectamos con el Motor de Base de datos Y agregamos el nombre del Servidor: CRISTHIAN-PC\SQLEXPRESS y en Autenticación designamos: Autenticación de Windows. . primero le damos click derecho en Base de Datos y elegimos Nueva base de datos.  Una vez conectado el Motor de Base de datos del SQL Server 2008 con su respectivo servidor creamos las BD con sus tablas.

click derecho en Tablas y Nueva Tabla  Aquí crearemos una tabla llamada Factura . Luego colocamos el nombre de la Base de datos en este caso Ejemplos y le damos Aceptar  De esta manera se crea la Base de datos Ejemplo luego de esto crearemos las tablas de la siguiente manera: Click en BD Ejemplos.

 Luego ya nos dirigimos a Microsoft Visual C# para hacer la conexión: En Explorador de servidores. Click derecho en Conexiones de datos y elegimos Agregar conexión  Vamos a elegir el origen de Datos le daremos Click en Cambiar . Y observaremos las 3 tablas creadas de la Base de Datos Ejemplos.

 Luego de dar Click en Cambiar elegiremos lo siguiente: la opción Microsoft SQL Server y Aceptar  En esta ventana elegiremos el Nombre del Servidor que usamos y el nombre de la Base de Datos y Aceptar  Eso es todo y verificaremos la Conexión y automáticamente la Bd de SQL Server 2008 aparecerá en Microsoft Visual Studio C# .

 Luego de tener la Base de Datos conectada a C# creamos un Proyecto y Formulario agregamos 2 botones que serán RESPALDAR BD y RESTAURAR BD Nos dirigimos al botón RESPALDAR DB le damos doble click y procedemos a color el siguiente código: El siguiente código hace referencia al evento que maneja el botón ―RESPALDAR BD‖. EventArgs e) { Se presenta un mensaje que informa la operación que se realizará MessageBox.Show("RESPALDAR"). como el mismo lo indica permite respaldar un base de datos. private void button1_Click(object sender. .

cn).Para evitarnos errores de ejecución utilizamos el boque de captura try{}.Initial Catalog=Ejemplos.Show(ex.bak Aquí observamos el respaldo de la Base de Datos . } } Al ejecutar el formulario damos click en Respaldar y la Base de Datos se creara en determinada ruta con formato .Open().Close().bak'". } catch(Exception ex) { MessageBox.Message). Luego usamos la clase que nos permite crean sentencias en SQL para poder operar sobre la base de datos: En nuestro caso el commando que nos permitirá crear el respaldo es BACKUP SqlCommand cmd = new SqlCommand(@"Backup database [Ejemplo] to disk='c:\copia\Ejemplo. cn. cmd. catch{} try { La clase SqlConnetion permite crear la conexión con la base de datos SqlConnection cn = new SqlConnection(@"Data Source=CRISTHIANPC\SQLEXPRESS.ExecuteNonQuery(). cn.Integrated Security=True").

connect. command = new SqlCommand("use master". EventArgs e) { MessageBox. command.Luego le damos Click a RESTAURAR BD y se realiza el siguiente código: El siguiente código corresponde al evento de restaurar la base de datos private void button2_Click(object sender.Initial Catalog=Ejemplo. connect). command.Integrated Security=True"). La clase SqlCommand permite ejecutar comandos SQL SqlCommand command.bak'".Open().ExecuteNonQuery(). Cerramos la conexión a la base de datos . El comando RESTORE permite restaurar la base de datos tal como lo indica la siguiente línea de código command = new SqlCommand(@"restore database Ejemplo from disk = 'C:\copia\Ejemplo. connect).ExecuteNonQuery(). try { SqlConnection connect = new SqlConnection(@"Data Source=CRISTHIANPC\SQLEXPRESS.Show("RESTAURAR").

} } } }  Y verificaremos si se Restauró la Base de Datos primero eliminamos una tabla de la base datos actual para luego verificar si se restaura  Aquí Ejecutamos el programa.  Aquí se debe cerrar todas las conexiones para que no suceda ningún problema y aquí verificamos la restauración .Show(ex.Message).connect. } catch (Exception ex) { MessageBox.Close().

Respaldar Restaurar Base de datos Desde Microsoft Visual C# Para hacer un respaldo de cierta base de datos se realiza lo siguiente:  Luego de tener la Base de Datos conectada a C# creamos un Proyecto y Formulario agregamos 2 botones que serán RESPALDAR BD y RESTAURAR BD  Anteriormente no hemos realizado este tipo de ejemplo además luego de tener el primer paso verificamos la conexión a la Base de Datos .

cmd.bak'". } } Al ejecutar el formulario damos click en el formulario y la Base de Datos se creara en determinada ruta con formato . cn. try { SqlConnection cn = new SqlConnection(@"Data Source=CRISTHIANPC\SQLEXPRESS.Open().Integrated Security=True").Show(ex. SqlCommand cmd = new SqlCommand(@"Backup database [Ejemplo] to disk='c:\copia\Ejemplo. } catch(Exception ex) { MessageBox.Initial Catalog=Ejemplo.Show("RESPALDAR"). EventArgs e) { MessageBox. cn.bak .Message).Close().ExecuteNonQuery(). cn).Nos dirigimos al botón RESPALDAR DB le damos doble click y procedemos a color el siguiente código: private void button1_Click(object sender.

command = new SqlCommand(@"restore database Ejemplo from disk = 'C:\copia\Ejemplo.Show("RESTAURAR"). enviando la ruta de conexión a la base de datos.Aquí observamos el respaldo de la Base de Datos Luego le damos Click a RESTAURAR BD y se realiza el siguiente código: private void button2_Click(object sender. command = new SqlCommand("use master". connect).ExecuteNonQuery().Initial Catalog=Ejemplo.ExecuteNonQuery().bak'". //-------------------------------------------------------------------------- .Integrated Security=True"). SqlConnection connect = new SqlConnection(@"Data Source=CRISTHIANPC\SQLEXPRESS. EventArgs e) { MessageBox. Abrimos la conexión a la base de datos connect. command. connect). command. try { Creamos la conexión a la base de datos utilizando la clase SqlConnection. //-------------------------------------------------------------------------//esto es un método aparte para ejecutar comandos SQL---------------La siguiente variable nos permite utilizar comandos en SQL SqlCommand command.Open().

Close(). } } } } .Show(ex.Message).connect. } catch (Exception ex) { MessageBox.

mediante el protocolo SMTP.  Aplicar y emplear el lenguaje C# para el desarrollo. Mariuxi Paola Zea Ordoñez UNIDAD III: CONCEPTO DE INTERFAZ GRÁFICA DE USUARIO Y PROGRAMACIÓN EN C# PERÍODO 05/08/2013 al 09/08/2013 Contenidos  Windows Forms  Manejo de Excepciones en Visual Estudio C# Objetivos de Desempeño  Crear interfaces gráficas amigables y flexibles.Creacion y envio de email CORREOS ELECTRÓNICOS ¿De qué trata? Es un servicio de red que permite a los usuarios enviar y recibir mensajes y archivos rápidamente (también denominados mensajes electrónicos o cartas electrónicas) mediante sistemas de comunicación electrónicos.Hubieron exposiciones de Compañeros .  Utilizar programación modular. aunque por extensión también puede verse aplicado a sistemas análogos que usen otras tecnologías.  Utilizar nombres estandarizados. conveniencia y bajo coste están logrando que el correo electrónico desplace al correo ordinario para muchos usos habituales. implementación y mantenimiento de los sistemas.Cada estudiante iba haciendo sus prácticas de cada tema expuesto  Creacion y envio de email Descriptores Analizados . Por medio de mensajes de correo electrónico se puede enviar.Semana N° 11 Día 1: Clase 21 CLASE N°: TIEMPO: FECHA: DOCENTE GUÍA: TEMA DISCUTIDO: 21 2 Horas 05/08/2013 Ing. sino todo tipo de documentos digitales (imágenes. documentación y sangría para facilitar la posterior lectura del código.) dependiendo del sistema que se use. Datos Interesados Discutidos Actividades Durante la Clase . comentarios. etc.  Construir módulos que valida el ingreso de datos para la integridad de la información Competencia General  Identificar los métodos a programar en la construcción de un sistema  Manejar controles que se pueden utilizar para que la interfaz gráfica sea amigable.  Crear funciones utilizando datos por valor y referencia. . Su eficiencia.  Programar métodos que muestren características de bajo acoplamiento y alta cohesión. Principalmente se usa este nombre para denominar al sistema que provee este servicio en Internet. no solamente texto. músicas.

MailMessage y otras clases relacionadas al mail están en el namespace System.cristian@gmail. La manera más simple de añadir un archivo es especificar el nombre del archivo: MailMessage m2 = new MailMessage ().Mail. Pase su objeto MailMessage al método SmtpClient. o incluir formato.Attachments. añadirlos al objeto MailMessage. SendAsync para enviar el mensaje asincrónicamente. “yuripando@hotmail.Estructura General Destinatario: una o varias direcciones de correo a las que ha de llegar el mensaje. El Objeto MailMessage tiene cuatro diferentes constructores que permiten crear un espacio en blanco. El propio mensaje: Puede ser sólo texto.Send.com”. “Vease documento de Informacion Adjunto”).Add.Add (new Attachment (“C:/boot. Para adjuntar un archivo. Si este servidor requiere para la autenticación de clientes. Asunto: una descripción corta que verá la persona que lo reciba antes de abrir el correo. Como enviar un mensaje (servidor SMTP) . pueden utilizar SmtpClient.Attachments AttachmentCollection llamando al método MailMessage. y los archivos adjuntos si es que quieren enviarlos. y no hay límite de tamaño. destinatario. el asunto. especificar tanto el remitente y el destinatario. Como crear un mensaje (objeto MailMessage): Para crear un eMail.Attachments. m2. Adjunto: Cualquier tipo de archivo que se desee enviar.com”. añadir credenciales al objeto smtpclient. añadirlo a la MailMessage. el cuerpo del mensaje y el destinatario o destinatarios. Si lo prefiere. puede hacer la mayor parte del trabajo en la MailMessage constructor: MailMessage m1 = new MailMessage (“mct.”.ini”)). o bien especificar el remitente. CREACIÓN Y ENVÍO DE CORREOS ELECTRÓNICOS. Si no ha especificado los beneficiarios en la MailMessage constructor. Si está creando un mensaje sencillo con un único destinatario.Net. especifiquen el remitente. Si es necesario. “Informe de Ingresos Trimestrales. Para crear y enviar un mensaje de correo electrónico. siga estos pasos: Crear el objeto MailMessage. cree un objeto MailMessage. Crear un objeto smtpclient y especificar el servidor SMTP. asunto y el cuerpo del mensaje. crear uno o más objetos Adjunto y añadirlos al objeto MailMessage.

En el . ya sea para enviar Client.gmail. Si el servidor SMTP responde diciendo que alguno de los destinatarios es invalido. el CLR lanzara una SmtpFailedRecipientException. . Configúrelo con el hostname del servidor SMTP y llame al método SmtpClient. La mayor parte del tiempo. cree una instancia de SmtpClient. “ypando@munilosolivos. imágenes.Credentials. La creación envío de correos electrónicos se da en cualquier momento. músicas. entre otros.com”. Si el hostname está definido. “Informe de Ingresos Trimestrales. lo que a su vez lo remitirá al destinatario.gmail. pero no puede alcanzarse (por el motivo que sea). la clase smtpclient representa el servidor SMTP.com”.Net. cree una instancia de la clase System.cristian@gmail.Para enviar un mensaje.NET Framework. APUNTES DE CLASE PRACTICA PARA LA CREACIÓN Y ENVÍO DE CORREOS ELECTRÓNICOS. por tal motivos a continuación mostraremos un ejemplo desarrollado en lenguaje de programación C#. información como texto. SmtpClient client = new SmtpClient (“smtp. “Vease documento de Informacion Adjunto”).com”). Una vez que haya creado un mensaje. Para especificar un nombre de usuario y contraseña. donde veremos el funcionamiento y el código del mismo. el envió de un mensaje es tan simple como este código demuestra (donde ―smtp.Send sin definir el hostname del servidor.NetworkCredential y úselo para definir la propiedad SmtpClient.”. Para usar las credenciales de red por defecto. Sendy(m).UseDefaultDredentials como True. Si llama al método SmtpClient. el CLR lanzara una SmtpExeption anidada. tendrá que enviarlo a través de SMTP (Simple Message Transfer Protocol) del servidor. marque SmtpClient.com‖ es el nombre del servidor SMTP local): MailMessage m = new MailMessage (“mct. Reflexionar ¿Qué cosa fueron difíciles?  Todo estuvo bien explicado ¿Qué cosas fueron fáciles?  Realizar las practicas ¿Por qué?  Debido a que las Exposiciones estuvieron bien explicadas se pudieron desarrollar los talleres ¿Qué Aprendí Hoy? A usar los componentes que vienen en visual Estudio 2010.Send. el CLR lanzara una InvalidOperationException.

Password: La contraseña correspondiente al correo que hemos ingresado. el cual tendrá la función de llenar los datos generales para el envío de un correo electrónico. Código que utilizamos en el formulario 1: . nuestro proyecto estará compuesto por dos formularios.CREACION DE APLICACIÓN Creamos nuestro proyecto en lenguaje C#. Correo Electrónico: Ingresaremos el correo electrónico del cual queremos enviar el mensaje. en nuestro caso lo nombraremos ―Mensajería Instantánea‖. Login y Mensaje. Explicación de la INTERFAZ GRAFICA DE LA CREACIÓN Y ENVÌO CORREO ELECTRÓNICO Formulario1: INICIAR SESIÓN Entrar: Primero verifica que el correo electrónico y el password sean correctos y nos llevara al formulario ―MENSAJE‖.

tendrá el nombre de ―MENSAJERÍA‖. permitirá ingresar los datos básicos de un correo electrónico como: Remitente (PARA): Correo de la persona a quien le vamos a enviar el mensaje. Archivo: Adjunto que queramos enviar. ya sea un documento de texto. se comprobara que los text no estén vacíos y guardara los datos ingresados en variables. para después guardarlos y usarlos en una instancia de la clase Mensaje. Asunto: Tema del mensaje.Mensajería Error Provider Cada vez que se de clic en el botón Iniciar. entre . imágenes. música. En el caso que los text estén vacíos se enviara un error que nos indique que debemos llenar los datos antes de ingresar. Formulario2: MENSAJERÍA El form2.

limpiar y salir. Su interfaz estará de la siguiente forma. veremos el código que utilizamos para realizar estos procesos. como lo ilustra la imagen: Como vemos. insertar. tenemos cuatro opciones enviar. subrayado). para así poder hacer el envío respectivo.otros. ENVIAR: Una vez creado el MailMessage debemos utilizar las propiedades necesarias para obtener el contenido que hemos ingresado en nuestra interfaz. Área en blanco: Escribiremos un mensaje cualquiera que queramos enviar donde tendremos la fuente (negrita. que queramos darle al texto. . cursiva.

Utilizando las propiedades del MailMessage Utilizamos la propiedad del SmtpClient para enviar los datos. SALIR: Sale del sistema. Luego creamos una clase Attachment y le enviamos el archivo adjunto. Creamos una clase OpenFieDialog Adjuntamos el archivo que deseamos LIMPIAR: Borra los datos de las cajas de texto. INSERTAR: Creamos una nueva clase OpenFileDialog en la cual comprobaremos que al dar OK se guardara en una variable dicho archivo seleccionado. .

en este caso las declaramos de forma pública: Variables Clase Como notamos con el correo que ingresamos en el formulario de LOGIN será el usuario en el .Limpiar Salir Para poder realizar la creación y el envío mediante el servidor SMTP debemos declara de forma pública o privada las clases y variables a utilizar. de acuerdo al uso que le demos.

Por último creamos la clase SmtpClient enviándole el servido que usaremos y el host para envío de correos electrónicos y utilizaremos unas propiedades de la misma. Mostramos el usuario. primero antes debemos aclarar que en esta parte guardamos los datos ingresados como son el correo. el password y el host.nuevo formulario. El correo se lo utilizara para en el formulario 2 mostrar el usuario que ingreso al sistema. El código para realizar esto es el siguiente. y obtenemos los datos del host. también se mostrara la fecha y hora de ingreso. que lo obtendremos de un método. Método. para saber con qué servidor trabajaremos. .

Enviamos el servidor y el host 587.Obtiene el servidor que vayamos a utilizar de acuerdo al usuario ingresado. A continuación los pasos para utilizar el programa: Paso1 Ingresar al sistema . en el caso de que tenga un inconveniente las clases envían mensajes de errores correspondientes. Una vez ingresado los datos y damos clic en enviar debemos revisar nuestra cuenta respectiva para verificar nuestro correo electrónico.

Paso 2 Ingresar el destinatario y el Asunto Paso 3 Adjuntar un archivo si deseamos .

Paso 4 Agregamos un texto y damos clic en enviar y le colocamos una fuente si deseamos. .

Debemos recordar que debemos estar conectados a internet para hacer este envío. . si no. no funcionará y saldrá un mensaje de error.

o lenguajes de macro como Visual Basic for Applications. documentación y sangría para facilitar la posterior lectura del código.  Utilizar programación modular.  Utilizar nombres estandarizados.Semana N° 11 Día 2: Clase 22 CLASE N°: TIEMPO: FECHA: DOCENTE GUÍA: TEMA DISCUTIDO: 22 2 Horas 07/08/2013 Ing. Aunque la popularidad de estos controles se debe principalmente al entorno de desarrollo de Visual Basic. OLE a su vez significa Object Linking and Embedding. las librerías OCX pueden utilizarse desde la práctica totalidad de plataformas de desarrollo generalistas para Windows. También pueden ser incrustados en documentos que soporten la tecnología OLE.  Aplicar y emplear el lenguaje C# para el desarrollo. comentarios.Formas de Formularios OCX es un acrónimo que significa "OLE Control Extension".  Construir módulos que valida el ingreso de datos para la integridad de la información Competencia General  Identificar los métodos a programar en la construcción de un sistema  Manejar controles que se pueden utilizar para que la interfaz gráfica sea amigable. implementación y mantenimiento de los sistemas. incluyendo especialmente el navegador Internet Explorer. documentos de Microsoft office o páginas web. .OCX.Cada estudiante iba haciendo sus prácticas de cada tema expuesto  Creacion OCX  Formas de Formularios Descriptores Analizados . OCX hace referencia a módulos que publican controles y funciones para ser utilizados en programas para Windows. Datos Interesados Discutidos Actividades Durante la Clase .  Crear funciones utilizando datos por valor y referencia. por ejemplo.  Programar métodos que muestren características de bajo acoplamiento y alta cohesión. lenguajes de scripting como VBScript y ECMAScript. estas librerías se presentan en librerías de enlace dinámico (DLL) almacenadas con extensión . Mariuxi Paola Zea Ordoñez UNIDAD III: CONCEPTO DE INTERFAZ GRÁFICA DE USUARIO Y PROGRAMACIÓN EN C# PERÍODO 05/08/2013 al 09/08/2013 Contenidos  Windows Forms  Manejo de Excepciones en Visual Estudio C# Objetivos de Desempeño  Crear interfaces gráficas amigables y flexibles. Típicamente.Creacion OCX .Hubieron exposiciones de Compañeros .

.Reflexionar ¿Qué cosa fueron difíciles?  Todo estuvo bien explicado ¿Qué cosas fueron fáciles?  Realizar las practicas ¿Por qué?  Debido a que las Exposiciones estuvieron bien explicadas se pudieron desarrollar los talleres ¿Qué Aprendí Hoy? - A usar los componentes que vienen en visual Estudio 2010.

UNIDAD IV: PRESENTACIÓN DE RESULTADOS .

Hubieron exposiciones de Compañeros . Competencia General  Crear y generar informes necesarios para la toma de decisiones. con la versión 13.Cada estudiante iba haciendo sus prácticas de cada tema expuesto  Crystal Reports Descriptores Analizados .1 de CRYSTAL REPORTS (la cual no bien integrada en visual studio 2010).0” Reflexionar ¿Qué cosa fueron difíciles?  Todo estuvo bien explicado ¿Qué cosas fueron fáciles?  Realizar las practicas .  Presenta la información para toma de decisiones de una Base de Datos en un medio impreso.” Primeramente vamos a instalar la versión de CRYSTAL REPORTS e integrarla en VISUAL STUDIO 2010 para poder trabajar. Datos Interesados Discutidos Actividades Durante la Clase . en este ejemplo trabajamos con Framework 4. Mariuxi Paola Zea Ordoñez UNIDAD IV: PRESENTACION DE RESULTADOS PERÍODO 05/08/2013 al 09/08/2013  Creación y ejecución  Informes tipo maestro – detalle  Informes con filtros y quiebre de control Objetivos de Desempeño  Crea interfaces que permiten parametrizar los informes.0. “Importante que la versión a descargar depende del Framework con el cual amos a trabajar nuestra aplicación.Crystal Repots INSTALACION DE CRYSTAL REPORTS “Este trabajo fue realizado en MICROSOFT VISUAL STUDIO 2010 (lenguaje C#).Semana N° 11 Día 3: Clase 23 CLASE N°: TIEMPO: FECHA: DOCENTE GUÍA: TEMA DISCUTIDO: Contenidos  Windows Forms 22 2 Horas 09/08/2013 Ing.

Lueg o de Habe r Crea do Un nuev o Proy ecto. APUNTES DE CLASE CREACIÓN Y EJECUCIÓN DE REPORTES CON CRYSTAL REPORT En este manual Aprenderemos a crear Reportes con CrystalReport de una sola Tabla. para ello comenzaremos creando un nuevo Proyecto.¿Por qué?  Debido a que las Exposiciones estuvieron bien explicadas se pudieron desarrollar los talleres ¿Qué Aprendí Hoy? A usar los componentes que vienen en visual Estudio 2010. . proc ede mos a agregar un WindowsFormApplication llamado Report1Tabla.

Generar Reporte Luego de haber agregado estos componentes. .Dentro de este formulario Agregaremos los siguientes componentes: 1 dataGridView = grilla 2 Botones = atrás.cs Dentro de este formulario Pasaremos a agregar el siguiente componente a nuestro formulario. pasamos a crear otro Formulario llamado Visualizar1Tabla.

Ahora sí.Este CrystalreportViewer nos permitirá más adelante poder visualizar el reporte con los datos de la base de datos que se esté consultando. una vez concluida la parte del diseño. Una vez realizada esta codificaci ón llamamos al método . Y este formulario quedará diseñado de la siguiente manera. Dentro de este formulario ira agregado los siguientes métodos. Comenzamos con el formulario Report1Tabla. pasemos a codificar los componentes agregados. la misma que nos permitirá visualizar los datos.

procedemos a agregar a nuestro proyecto 2 componentes más: Conjunto de datos = Dataset1 Archivo CrystalReport = rpt1Tabla. Con todas estas líneas de código.cargarDatos(). Esta es la tabla con sus respectivos campos que posee la base de datos creada en Access 2010 Una vez que ya se ha cargado los datos de la base de datos a nuestra grilla. al evento Load del Formulario. una vez ya agregado a nuestro proyecto se cargara una vista.rpt Como primer Punto Agregamos el conjunto de datos. se mostrara la información que poseemos en nuestra base de datos de la tabla Empleado. donde comenzaremos a agregar una tabla que ira almacenando los datos que tenemos de la base de datos. en nuestro dataGriedView que agregamos a este formulario. .

En esta grafica ya nos muestra el dataTable que se utilizara para trabajar. . que como se mencionó anteriormente almacenará los datos de la base de datos.Una vez dado clic derecho sobre el espacio de trabajo agregaremos una tabla de datos llamada Empleados.

Una vez que ya está agregado el dataTable procederemos a agregar columnas que se agregaran de acuerdo a los campos que posee nuestra base de datos. .

procedemos a crear el segundo archivo.Net Dataset ‖. la cual nos muestra 3 opciones: Usar asistente de informes Como Informe en Blanco A partir de un informe existente De estas tres opciones escogeremos Como Informe en Blanco. se abrirá un asistente de creación de reportes. que nos permitirá visualizar los datos de nuestra base de datos.Ya agregadas todas las columnas a nuestra tabla. Ya creado nuestro componente. de aquí en adelante seguiremos los siguientes pasos para enlazar este visor de reportes con el conjunto de datos que se creó anteriormente. CrystalReport. En la parte derecha se Muestra un menú que dice ―EXPLORADOR DE CAMPOS‖ damos clic derecho. y damos a aceptar Ahora se nos muestra el informe en blanco. Seleccionamos la opción con nombre ―Empleado‖ y lo . en esta ventana escogeremos la primera opción ―Datos del Proyecto‖ y desplegamos la carpeta que dice ―ADO . seleccionamos la opción ―asistente de base de datos‖ Ahora se visualizará la siguiente ventana.

Tables[0]).pasamos al otro lado con el botón de Mayor Que > y presionamos aceptar.SetDataSource(dt. Una vez enlazado con el dataSet1. cambiara la apariencia del reporte. visualizartabla a = new visualizartabla(). informe. a. llegamos a la parte final. . los colocamos ordenadamente. donde realizaremos la codificación del Botón ―Generar Reporte‖ que se encuentra en el Formulario Report1Tabla. ya que depende de como los ordenemos. Damos doble clic sobre ese componente y se generara el evento click del botón. CrystalReport1 informe = new CrystalReport1(). Se mostraran los campos de la tabla que se agrego en el dataset. Una vez Terminada esta parte. a esos campos se los debe arrastrar a la sección de ―Detalle‖.ReportSource = informe.crystalReportViewer1. dentro de este evento escribiremos las siguientes líneas de código.

tal vez sea porque algunos PC eran de X64 y otros de X32 pero. Pero por alguna razón en algunos VS 2010 no configura de manera correcta el App. en otros no y todo es normal. al ejecutar nuestro proyecto se vera asi.a. en otros no existe el problema.Config. con la tabla que muestra todos los datos de la base de datos y el reporte que se crea al dar clic sobre el botón de generación de reporte.config y nuestro reporte no se ejecuta. Cuando creamos de esta manera el reporte en VS 2010 tendría que agregar automáticamente las librerías necesarias. Para que se ejecute de manera correcta solo tenemos que configurar el App. además configurar el App. Y una vez Terminado todos los Pasos. Estuve probando en diferentes VS 2010 sobre todo ultímate pero me sale un error.ShowDialog().Config de manera que la ejecución resulte exitosa. <startup useLegacyV2RuntimeActivationPolic . agregando esta línea. NOTAS IMPORT ANTES PARA LA CORRE CTA IMPLEM ENTACI ÓN DE LOS REPOR TES CON CRYST AL REPOR T. no hay problema si tenemos este error de ejecución el cual indica que no podemos compilar porque no se reconoce las librerías de CR.

NETFramework.0" sku=".Version=v4.config como sigue: ////////////////////// <?xml version="1.0"?> <configuration> <!--<startup><supportedRuntime version="v4.0" sku=".0"/></startup>–> Quedando el App.0"/> </startup> Y comentando la línea <!–<startup><supportedRuntime version="v4. .y="true"> <supportedRuntime version="v4.0"/> </startup> </configuration> ///////////////////// Con esto ya se ejecuta nuestro reporte.NETFramework.0"/></startup>-> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.Version=v4.

ACTIVIDADES DE APRENDIZAJE INTRA Y EXTRA CLASE .

UNIDAD I: INTRODUCCIÓN A .NET .

esquemas □Caso de estudio □Investigativa □Vinculación con la colectividad □Práctica de laboratorio □Práctica de clase □Resolución de problemas. Plantearse un objetivo para este módulo.NET Describir los conceptos y terminologías sobre el lenguaje de programación. Se revisará las características de los lenguajes de programación. artículo □Informe e exposición DESARROLLO DE LA ACTIVIDAD. En este modulo el objetivo es afianzar mas mis conocimientos con todo lo que tenga que ver con la Programación y aprobar. Responsabilidad. . Desconocimiento de terminologías de lenguaje de Programación m)Comunicación efectiva n) Asuntos contemporáneos Respeto. Plenaria: Los alumnos expondrán sus respuestas ante sus compañeros y debatirán sus acuerdos o desacuerdos con la selección presentada. SOLUCIÓN O PRECEDIMIENTO 1. TEMA: UNIDAD N° 1: OBJETIVO: PROBLEMA: INDICADOR DE EVALUACION: VALORES: INTRODUCCIÓN A . ejercicios CALIFICACIÓN □Ensayo. Honestidad.Actividad N° 1 ACTIVIDAD N°:     1 FECHA: 08/05/2013 Plantearse un objetivo para este módulo. Plenaria: Los alumnos compartirán el objetivo que se han planteado para este módulo Los alumnos en forma individual contestarán un caso. TIPO DE ACTIVIDAD LUGAR ALCANCE FORMA □Intraclase □Extraclase □Individual □Grupal □Taller □Síntesis.

2. C++. - 4. ¿Qué características deben proporcionar los lenguajes de programación a los sistemas automatizados? ¿Por qué? (Elabore una lista de al menos 5 características). C#. Multilenguaje. ¿Qué características tendría dicho lenguaje? ¿Por qué? Modo Diseño: Debería ser más fácil para el desarrollador una manera más sencilla. Auto llenado de código. usted ha sido designado por su compañía para desarrollar un nuevo lenguaje de programación. Las características son:      Multiplataforma. Español: La mayoría de Lenguaje son en Inglés Multiplataforma: Para que se pueda utilizar en todos los SO Auto Programable: Para que al momento de ir escribiendo las líneas de código muestre las sugerencias. Por qué?: Facilitaría a los usuarios (Programadores) a la mejor adaptación a los conocimientos de cada persona lo cual pueda trabajar en varios sistemas Operativos y el lenguaje de su preferencia. comparta sus respuestas. explique por escrito el porqué de sus decisiones. Java. Plenaria: Los alumnos expondrán sus respuestas ante sus compañeros y debatirán sus acuerdos o desacuerdos con la selección presentada. . Visual Basic. Los alumnos en forma individual contestarán por escrito lo siguiente: Tarea1: Un nuevo virus apareció y dañó específicamente todos los lenguajes de programación utilizados (Ejemplo. Se revisará las características de los lenguajes de programación. - Tarea2: En grupo de máximo 4 personas. Visual FoxPro. Que no haya restricción entre mayúscula y minúscula.). Plenaria: Los alumnos compartirán el objetivo que se han planteado para este módulo 3. discuta con sus compañeros y seleccione el lenguaje de programación más conveniente para la empresa. Modo Gráfico. de tal manera que después de un tiempo no se podrá ejecutar ningún programa. entre otros.

aunquela entrega no fue en el formato preestablecido. La información principal.Actividad N° 2 ACTIVIDAD N°: TEMA: UNIDAD N°1: OBJETIVO: PROBLEMA: 2 FECHA ENVIO: 08/05/2013 FECHA ENTREGA: 10/05/2013 Introducción a la Computadora Introducción a.1 puntos Descripción clara y sustancial del cuadro y buena cantidad de detalles. Cuadro bien organizado y claramente presentado así comode fácil seguimiento. Identifica los objetivos del lenguaje de programación C#. ademásla entrega no se dio de la formapre establecida por el docente. Los temas centrales se ubicaron en la columna izquierda y encorrecto orden y en la partesuperior se colocaron las variablesy la información fue acertada La presentación/exposición fuehecha en tiempo y forma. algunos detalles que no clarifican el tema. sin detalles significativos o escasos. La presentación/exposición fuehecha en tiempo y forma. Alta calidad del diseño Elementos propios del cuadro comparativo Descripción incorrecta del tema. Cuadro sinóptico simple pero Cuadro sinóptico mal bien organizado con al menos planteado que no cumple con tres errores de ortografía.5 puntos 0. Presentación del cuadro sinóptico TIPO DE ACTIVIDAD LUGAR ALCANCE FORMA . Cuadro sinóptico bien focalizado pero no suficientemente organizado. hacereferencia al tema. Cuadro sinóptico impreciso y poco claro. INDICADOR DE EVALUACION: CALIFICACIÓN Comprometerse con el aprendizaje continuo. Se ubicaron los temas No se ubicaron o se ubicaron centrales enla columna deforma incorrecta los izquierda pero lasvariables no temascentrales y las variables se colocaron de no tienenrelación con el tema formaordenada. sin errores de ortografía.Net Describir los conceptos y terminologías sobre el lenguaje de programación. Diseñar conducir experimentos analizar e interpretar datos Comunicarse Efectivamente Cuadro comparativ o Profundización del tema Aclaración sobre el tema 1 punto 0. Cuadro sobresaliente y atractivo que cumple con los criterios de diseño planteados. Descripción ambigua del tema. La presentación/exposición no fuehecha en tiempo y forma. ademásse entregó de forma limpia en elformato pre establecido (papel odigital). los criterios de diseño planteados y con más de tres errores de ortografía. sin coherencia entre las partes que lo componen.

A medida que la complejidad de las tareas que realizaban las computadoras aumentaba. por palabras o letras provenientes del inglés. evolución. Josep Galimany. se crearon los lenguajes de alto nivel. Josep Galimany. esquemas □Caso de estudio □Investigativa □Vinculación con la colectividad □Práctica en laboratorio □Práctica en clase □Resolución de problemas. ejercicios □Ensayo.A. secuencias de unos y ceros. Antoni Gual (1985). Antoni Gual (1985)).2 2 Laboda. del más bajo nivel. Biblioteca práctica de la computación. que se conoce como Assembly o lenguaje ensamblador. siendo éste excesivamente complicado para programar. Para facilitar el trabajo de programación. los primeros científicos que trabajaban en el área decidieron reemplazar las instrucciones. artículo □ nfo me de xposición ROLES Y RESPONSABILIDADES DE LOS PARTICIPANTES EN LA TAREA: NOMBRE Jennifer Honores ROL Investigador . S. Javier. Barcelona: Ediciones Océano-Éxito. solución procedimiento Introducción Los lenguajes de Programación son muy extensos en características. es por ello que este trabajo nos ayudara de a entender todo esto con investigaciones hechas en la WEB. De hecho sólo consiste en cadenas de números 1 y 0 (sistema binario). En sus inicios las computadoras interpretaban sólo instrucciones en un lenguaje específico. se hizo necesario disponer de un método sencillo para programar.□Intraclase □Extraclase □Individual □Grupal □Taller □Síntesis. Entonces. Rosa María Pena. . Rosa María Pena. «Software». Javier. Marco Teórico Según (Laboda. conocido como código máquina. las codificaron y crearon así un lenguaje de mayor nivel.Analista DESCRIPCIÓN Investigación Desarrollo de la Actividad..

d. Si usted quiere aprender a programar. 3. ¿De qué manera estos tutoriales contribuyeron a su aprendizaje? Rpt: Los tutoriales en internet ahora se podría considerar como una fuente de investigación muy importante ya que uno aprende de manera más rápida y así conocer los lenguajes de programación de forma más llamativa por lo que en internet se puede acceder mucho más rápido a una fuente libro. elaborando un informe sobre lo que han investigado: 1. Lectura Complementaria. Realice un informe y conteste lo siguiente en forma de reflexión: a. McGraw Hill. b. 4. Visite algunos tutoriales de los lenguajes de programación arriba mencionados (Trate de centrarse en el lenguaje que será materia de este módulo). Páginas 423 – 431. Edición. tutoriales de bolsillo. ¿Terminó usted sabiendo más acerca de la programación que antes ? Rpt: Si ¿Por qué? En la Web hay tanta información que uno puede con buscar frases palabras cortas para un mejor aprendizaje por consiguiente se ha ce más fácil captar la idea de la programación en sí. ¿Qué tanta ayuda proporcionan estos sitios? Rpt: Con tanta información disponible en el internet lo que debemos saber es cual es real. Este material será utilizado más adelante en las futuras clases por lo que debe llevarlo siempre consigo. Introducción a la Computación. Una gran cantidad de información relacionada con la programación se encuentra disponible en Internet. HTML. Guarde en un dispositivo de almacenamiento secundario todos los manuales o tutoriales de C# que haya encontrado en el Internet. Localice páginas Web dedicadas a los siguientes productos: Visual Basic. C++. Visual Fox Pro. videos nos proporcionan que al momento de buscar datos será de una manera rápida eficiente. C#. Java. 3era. como obtenerla. como clasificarla y la mejor manera de administrarla. Desarrollo de Sistemas de Información. libros ya que a veces la falta de tiempo que nos impide al trasladarnos a una biblioteca cada vez que la necesitemos… e. Capítulo 11. Realice un . 2. ¿Qué piensa acerca de estos tutoriales en línea. Visual Studio. Peter Norton. respuestas de estudiantes que tienen dudas e infinidad de información. comparados con aprender de un libro o en una clase? Rpt: Yo pienso que los tutoriales en línea son muchos mejor comparado con biblioteca. Subtema: Dos enfoques de programación. ¿Qué tipo de apoyo proporcionan? Rpt: Los sitios en internet. existen muchos recursos. tutoriales en el WEB. cierta. hay libros. c.Solución o Resultados Los alumnos individualmente deben desarrollar los siguientes problemas.NET.

cuadro comparativo con las principales características de cada uno de los lenguajes descritos. (mínimo 10 características por cada lenguaje). .

NET junto con un nuevo lenguaje. Gnu/Linux Se pueden ver en todos los sistemas operativos. La interpretación de cada navegador puede ser diferente.0 (1998) Visual fox pro Orientado a Objetos SI.net. ----------------- No es atractivo visualmente Esperar la actualización siguiente para que sea más rápido. Oracle.0 desarrollada para el sistema operativo MS-DOS las demás para Windows. Mac Os. Sql.net. Microsoft presenta su plataforma . Multiplataforma Visual Studio 2010 (2010) La demanda de grandes cantidades de recursos computacionales debido a q la característica de reutilización de los frameworks tiende a generalizar la función. Sirve para trabajar la mayoría de las aplicaciones y programas creados para la plataforma Windows. pero la interpretación varía según el navegador que esté utilizando. Mysql Visual Fox Pro 9. C# Las desventajas que se derivan del uso de este lenguaje de programación son que en primer lugar se tiene que conseguir una versión reciente de visual studio . En el año 2000.CUADRO COMPARTIVO Descripciones / programas Programación Visual basic Limitada programación orientada a Objetos Posee varias Bibliotecas para las conexiones Visual Basic 6. sin tener que recurrir a llamadas del api de Windows. Server. ------------------ Conexión a Base de Datos Ultima Versión Si C++11 (2011) Modo Prueba Java Se 7 (2011) HTML5 (2012) Desventajas Incapacidad para crear aplicaciones multihilo.0 (2004) C++ Estructurado Java Orientado a Objeto Si Html ----------------C# Programación orientada a Objetos Si Visual studio. Sistemas operativos Microsoft Visual Basic 1. Microsoft Windows Sirve para todos los sistemas operativo pero cada uno con su respectiva versión para dicho sistema Microsoft. permitiendo una integración más .

(s.f. . . 312 . Boring Code». Editorial Iberprensa (Madrid). Recuperado el 9 de Mayo de 2013. .f.NET.c++ Formato abierto ----------------- Propietaria .).. ISBN 0-201-54330-3 M.google.All about Microsoft .com/2012/08/cuadro-comparativo-entre-loslenguajes. 10-20.rápida y ágil entre todo tipo de información Compilado / interpretado Rendimiento Diseñado por Interpretado Interpretado Compilado Alto Bjarne Stroustrup Intermediario Alto Sun Microsystems Interpretado Muy alto World Wide Web Consortium & WHATWG Muy alto Microsoft Alto Microsoft Alan Cooper Microsoft Corporation Licencia Propietaria Microsoft EULA Extensiones . Developers petition Microsoft to reconsider FoxPro phase out Posted by Mary Jo Foley (April 3rd. . Agosto.com https://sites.ZDNet. Microsoft. Addison-Wesley Pub Cp.wikipedia.hxx .cs ----------------- Bibliografí a partespcs ena. Todo Programación.h++ . Primera edición (29 de marzo de 1994).exe.class.html. Domínguez-Dorado.blogspot.cc . Págs. de https://es.. 2005. (s.blogspot. Recuperado el 09 de 05 de 2013.). The Design and Evolution of C++.hh . (s.f.frm.jar .hpp . Imprimir desde Java y .htm . de http://partespcsena. .cpp . 2007) .).h . de http://es.com/site/programacion1electronica/conceptos/lenguajes-de-programacion Bjarne Stroustrup. . Nº 11. Guillermo Som. DL M-13679-2004.bas.html Visual Basic.java.org/wiki/Visual_Basic Visual Fox Pro.wikipedia.cxx .org/wiki/Visual_FoxPro Marc D'Aoust. Recuperado el 09 de Mayo de 2013. «Avoid Writing Tedious.vbp ----------------- GNU GPL / Java Community Process .com.

Tarea1: Elaborar una línea de tiempo sobre la evolución de los lenguajes de programación.Actividad N° 3 ACTIVIDAD N°:   3 FECHA: 10/05/2013 Elaborar una línea de tiempo sobre la evolución de los lenguajes de programación. SOLUCIÓN O PRECEDIMIENTO 1. trabajarán para responder las siguientes preguntas. Honestidad.NET Describir los conceptos y terminologías sobre el lenguaje de programación. ¿Cuándo considera usted que no puede utilizar C# para automatizar un sistema manual? ¿Explique por qué? Cada grupo compartirá sus opiniones y cómo llegaron a esas conclusiones con el resto de compañeros. Se tomarán unos 5 a 15 minutos para pensar individualmente: 2. esquemas □Caso de estudio □Investigativa □Vinculación con la colectividad □Práctica de laboratorio □Práctica de clase □Resolución de problemas. Utilizando la lectura y la investigación realizada responda: ¿En qué generación de los lenguajes de programación ubica usted a C#? ¿Qué razones lo llevan a pensar eso? ¿Qué diferencia hay entre C# y los otros lenguajes de Programación? ¿Por qué? ¿Qué características tendrá un sistema automatizado con C#? Ponga ejemplos. Desconocimiento de terminologías de lenguaje de Programación o) Comunicación efectiva p) Asuntos contemporáneos Respeto. TIPO DE ACTIVIDAD LUGAR ALCANCE FORMA □Intraclase □Extraclase □Individual □Grupal □Taller □Síntesis. . Los alumnos en grupos máximo de 4. ejercicios CALIFICACIÓN □Ensayo. Responsabilidad. TEMA:  UNIDAD N° 1: OBJETIVO: PROBLEMA: INDICADOR DE EVALUACION: VALORES: INTRODUCCIÓN A . artículo □Informe de exposición DESARROLLO DE LA ACTIVIDAD.

Incluye un conjunto de objetos que podemos incorporar en nuestros programas en vez de tener que crear todo desde cero. ¿Qué diferencia hay entre C# y los otros lenguajes de programación? Nor-Jen a. Por programación Orientada a Objetos y Eventos. Los Sistemas Bancarios 314 . ¿Qué características tendrá un sistema automatizado con C#? Ponga Ejemplos a. En que C# es una unión de los lenguajes de programación anteriores (C++ y Java) Gio 4. Lenguaje de Cuarta Generación. La tarea de Programación se simplifica si podemos utilizar componentes prefabricados. Nor-Jen 2. ¿Cuándo considera usted que no puede utilizar C# para automatizar un sistema manual? ¿Explique por qué? 1.Tarea2: Utilizando la lectura y la investigación realizada responda: ¿En qué generación de los lenguajes de programación ubica usted a C#? ¿Qué razones lo llevan a pensar eso? ¿Qué diferencia hay entre C# y los otros lenguajes de Programación? ¿Por qué? ¿Qué características tendrá un sistema automatizado con C#? Ponga ejemplos. Qué razones le llevan a pensar eso? a. 5. i. 3. ¿En qué generación de los lenguajes de Programación Ubica a C#? a. ¿Cuándo se considera usted que no puede utilizar C# para automatizar un sistema manual? ¿Explique por qué? a.

315 . Plenaria: Cada grupo compartirá sus opiniones y cómo llegaron a esas conclusiones con el resto de compañeros. Porque estos sistemas guardan claves confidenciales que solo el portador debe conocerlas.i.

funcionalidades que tienen dichos sistemas. 2. Diseñar conducir experimentos analizar e interpretar datos Comunicarse Efectivamente Ensayo Profundizació n del tema 1 punto 0. C#. Ensayo escrito con Ensayo simple pero bien Ensayo mal planteado que no tipografía sencilla y que organizado con al menos cumple con los criterios de cumple con los criterios tres errores de ortografía y diseño planteados y con más de diseño planteados.NET.1 puntos Descripción clara y Descripción ambigua del Descripción inexacta del tema a sustancial del tema y tema a tratar. un lenguaje actual. Utilizando los buscadores en Internet. Lectura: Quince años de innovación tecnológica.5 puntos 0. Pag.Net Describir los conceptos programación. UNIDAD N°1: OBJETIVO: Introducción a. 14 – 17 del libro: Guía Práctica para usuarios Visual C# 2005. detalles. elabore un ensayo acerca de las fortalezas y limitaciones de C#. y terminologías sobre el lenguaje de PROBLEMA: El estudiante debe identificar los objetivos del lenguaje de programación C#. sin detalles significativos buena cantidad de detalles que no clarifican el o escasos. Los desafíos del programador. requerimientos de hardware y software de cada ejemplo. sin Aclaración sobre el tema Alta calidad del diseño 316 . INDICADOR DE EVALUACION: CALIFICACIÓN Comprometerse con el aprendizaje continuo.Actividad N° 4 ACTIVIDAD N°: 4 FECHA ENVIO: 13/05/2013 FECHA ENTREGA: 15/05/2013 TEMA: 1. Tema bien organizado y Tema con información bien Tema impreciso y poco claro. Nace la era . Busque ejemplos de sistemas (aplicaciones comerciales) que han sido automatizados con C# (mínimo 5). Autor: Francisco Charte Ojeda. Establezca las características (en cuanto a apariencia física). claramente presentado focalizada pero no sin coherencia entre las partes así como de fácil suficientemente organizado. tema. seguimiento. algunos tratar. que lo componen. Editorial ANAYA.

aunque la entrega fue en el formato preestablecido. evolución. El ensayo cumple con los cuatro criterios de diseño pero no con la extensión solicitada (mínimo 3 páginas) o bien. ejercicios □Ensayo. estos puntos no han sido correctamente realizados. además la entrega no se dio de la forma pre establecida por el docente.errores de ortografía. 317 . artículo □Informe de exposición ROLES Y RESPONSABILIDADES DE LOS PARTICIPANTES EN LA TAREA: NOMBRE Jennifer Honores ROL Investigador . La presentación/exposición no fue hecha en tiempo y forma. El ensayo cumple con los cuatro criterios de diseño (Resumen.Analista DESCRIPCIÓN Investigación Desarrollo de la Actividad. solución procedimiento Introducción Los lenguajes de Programación son muy extensos en características. de tres errores de ortografía. Elementos propios del Ensayo Presentación del Ensayo La presentación/exposición fue hecha en tiempo y forma. es por ello que este trabajo nos ayudara de a entender todo esto con investigaciones hechas en la WEB. TIPO DE ACTIVIDAD LUGAR ALCANCE FORMA □Intraclase □Extraclase □Individual □Grupal □Taller □Síntesis. palabras clave. esquemas □Caso de estudio □Investigativa □Vinculación con la colectividad □Práctica en laboratorio □Práctica en clase □Resolución de problemas. además se entregó de forma limpia en el formato pre establecido (papel o digital). cuerpo del ensayo y referencias bibliográficas) La presentación/exposición fue hecha en tiempo y forma. tipografía difícil de leer. El ensayo no cumple con los criterios de diseño planteados o bien no están claramente ordenados o definidos ni cumple con la extensión mínima.

en inglés sharp) indica que la nota (C es la nota do en inglés) es un semitono más alta. sugiriendo que C# es superior a C/C++. ¿Quién la Creo?. las bibliotecas de clases fueron escritas originalmente usando un sistema de código gestionado llamado Simple Managed C (SMC). donde '#' (sostenido.3 Durante el desarrollo de la plataforma . hace un análisis acerca del Lenguaje de Programación C# y sobre… ¿Cuáles son sus fortalezas?. ¿Cuáles son sus Limitaciones?. requerimientos de hardware y software de cada ejemplo. En enero de 1999. Escuela de Informática Quinto Quimestre “A” 318 .NET History Lesson» ingles). Este nombre tuvo que ser cambiado debido a problemas de marca. Anders Hejlsberg formó un equipo con la misión de desarrollar un nuevo lenguaje de programación llamado Cool (C orientado a objetos). C# Fortalezas y Limitaciones Jennifer Honores Cun5 Resumen El presente ensayo.Marco Teórico Según (James Kovacs 7 septiembre 2007) El nombre C Sharp fue inspirado por la notación musical.NET. ¿Hay aplicaciones que se automatizaron con este lenguaje de Programación?.NET 2003 (en inglés) 5 Estudiante de la Universidad Técnica de Machala.en «C#/. 4 Visual C# Developer Center. Además. el signo '#' se compone de cuatro signos '+' pegados. Frequently Asked Questions About Visual C# .4 Solución o Resultados Utilizando los buscadores en Internet. Busque ejemplos de sistemas (aplicaciones comerciales) que han sido automatizados con C# (mínimo 5). pasando a llamarse C#. Establezca las características (en cuanto a apariencia física). elabore un ensayo acerca de las fortalezas y limitaciones de C#. funcionalidades que tienen dichos sistemas. fondo sobre este de Lenguaje de Programación. ya que ahora en el mundo de la Programación es muy interesante ver cómo evolucionan sus lenguajes es ello que nos centraremos un Lenguaje Actual como (en es el C# para conocer más a 3 James Kovacs por (7 de septiembre de 2007).

seguro. II. Introducción Historia de C# C# Fortalezas y Limitaciones a. Plataforma. Limitaciones IV. Frequently Asked Questions About Visual C# . Lenguajes de Programación. Fortalezas b. moderno.Net Sumario: Resumen I. Características (Apariencia Física) b. Aplicaciones Automatizadas con C# a.NET 2003 (en inglés) 319 .Palabras Claves: Automatización.NET Historia C# 6 Visual C# Developer Center. Requerimientos de Software y Hardware Introducción C# es un lenguaje de programación orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma . III.6 C# es un lenguaje orientado a objetos. Compiladores. Funcionalidades c. Hardware. de alto rendimiento es también la principal herramienta para programar en la plataforma.NET. Software.

8 Kovacs. donde "+ +" indica que una variable debe ser incrementado en 1. "C#/. •Encapsulacion. James (September 7. Seguin (Kovacs James. 7 Zander. •Incorpora Propio Lenguaje para el desarrollo de aplicaciones ya que C++ y Java hay que simular. y polimorfismo Instrucciones Seguras Soporte •Para evitar errores muy comunes de C# se ha impuesto una serie de restricciones en el uso de las instrucciones de control mas comunes. 320 . El nombre de "C sharp" se inspiró en la notación musical en un fuerte indica que la nota escrita debe hacerse un semitono más agudo. las bibliotecas de clases fueron escritos originalmente con un sistema de compilador de código administrado llamada Simple C Gestionado (SMC). y Visual J + +. Jason (November 24. •Soporte para internalización. 2008). 2009. Retrieved February 23. que participó anteriormente en el diseño de Turbo Pascal. Delphi Embarcadero (antes CodeGear Delphi. 2007).Segun (Zander Jason. Inprise Delphi y Borland Delphi).NET History Lesson". "Couple of Historical Facts". herencia.Durante el desarrollo de. C# Fortalezas y Limitaciones Fortalezas Sencillez Modernidad Orientada a Objetos •Eliminan muchos elementos que otros lenguajes incluyen y no son necesarios •No se incluyen elementos poco utiles como Herencia multiple. 8 Esto es similar al nombre del lenguaje de C + +. 7 Diseñador principal C # 's y arquitecto principal de Microsoft es Anders Hejlsberg. 2007). 2008). 2009. Retrieved June 18. NET Framework.

XobotOS es un sólo proyecto experimental que Xamarin ha donado a la comunidad XobotOS es un proyecto de investigación que explora Xamarin portar Android 4. Android. IOs.0 de Java / C # Dalvik a explorar los beneficios de rendimiento y la memoria de la huella de C # Un engine de desarrollo de juegos en C# WaveEngine Engine es la solución definitiva para el desarrollo de juegos multiplataforma en C #.Limitaciones Seguridad de Tipos Eficiencia Instalación Licencia Hardaware •Sólo se admiten conversiones entre tipos de datos compatibles.NET •C # no permite el acceso directo al hardware de la computadora Aplicaciones Automatizadas con C# Aplicaciones/Descrip ción XobotOS Características Funcionalidades Requerimientos de Software y Hardware Los diferentes elementos del XobotOS están licenciados bajo la misma licencia que sus proveedores inmediatos. •En principio. •Se tiene que conseguir una versión reciente de Visual Studio. en C# todo el código incluye numerosas restricciones para asegurar su seguridad y no permite el uso de punteros.NET •Hay que pagar la licencia para . Windows Store. •No se pueden usar variables no inicializadas. Windows Phone 321 .

html 322 . Esta app está optimizada para iPhone 5. Recuperado el 13 de Mayo de 2013. iPhone 5. iPhone 4S.blogspot. tutoriales existen información básica acerca de C# es por eso que al momento de hacer la búsqueda de aplicaciones automatizadas para este lenguaje de programación se volvió muy complicado.com/2012/10/noticia-futuro-de-c.org/wiki/C_sharp_NET  Palanca.0 millones de desarrolladores en todo el mundo. David Cañar. iPod touch (cuarta generación). iPod touch (tercera generación). Es un sistema independiente del dispositivo y transparente a la red para acceder a la realidad periféricos virtuales en las aplicaciones de RV. Sebastian Sasías . (31 de Marzo de 2005). (05 de Octubre de 2012). tanto de CPU como de memoria RAM. M. NET desarrolladores con más de 3. implementación El modelado de los componentes de una maqueta ferroviaria. Bibliografía  Fabian Seoane. Requiere iOS 4. Conclusiones Según lo observado en internet. iPod touch (5ª generación) y iPad. de http://csharpyfoxpro.NET. Compatible con iPhone 3GS. WikiBooks.3 o posterior. Alto consumo de recursos. Costo de desarrollo. de http://es. Gustavo Novaro. iPhone 4. Javier Hernández Sánchez. C# Corner Es una de las comunidades online más populares para C # y. Aplicando la filosofía de programación de Foxpro con C# .VRPN Realidad Virtual periférico de red. Simulador C# de una maqueta de trenes. Recuperado el 14 de Mayo de 2013.wikibooks.

Recuperado el 14 de Mayo de 2013. Rodríguez. A. Xatak Android. Recuperado el 14 de Mayo de 2013. de http://waveengine. un lenguaje actual. (12 de Mayo de 2012). Autor: Francisco Charte Ojeda. (03 de Octubre de 2006).NET. J. Recuperado el 14 de Mayo de 2013.xatakandroid. 323 .aspx  WAVE Corporation. de http://www. Nace la era . C#. T. (2013). Editorial ANAYA.net/Engine/Documentation Lectura: Quince años de innovación tecnológica. devjoker. de http://www. 14 – 17 del libro: Guía Práctica para usuarios Visual C# 2005. Los desafíos del programador.devjoker.com/programacion-android/xobotos-android-hecho-usando-c-yla-plataforma-mono-prescindiendo-de-java  Seco. Pag.com/contenidos/Tutorial-C/125/Introduccion-a-C. WAVE Corporation.

324 .

325 .

cuerpo del ensayo y referencias bibliográficas) La presentación/exposición fue hecha en tiempo y forma. El ensayo cumple con los cuatro criterios de diseño pero no con la extensión solicitada (mínimo 3 páginas) o bien. Ensayo simple pero bien organizado con al menos tres errores de ortografía y tipografía difícil de leer. suficientemente organizado. componen. además se entregó de forma limpia en el formato pre establecido (papel o digital).5 puntos 0. Tema bien organizado y Tema con información bien Tema impreciso y poco claro. además la entrega no se dio de la forma pre establecida por el docente. Presentación del Ensayo La presentación/exposición no fue hecha en tiempo y forma. diseñadores y editores.Actividad N° 5 ACTIVIDAD N°: 5 FECHA ENVIO: 17/05/2013 FECHA ENTREGA: 20/05/2013 1.Net Reconocer los componentes del IDE de Visual C# El estudiante no tiene mucho conocimiento acerca de los componentes del IDE de Visual C# CALIFICACIÓN INDICADOR DE EVALUACION: Comprometerse con el aprendizaje continuo. El ensayo cumple con los cuatro criterios de diseño (Resumen. algunos detalles que tratar. Alta calidad del diseño Elementos propios del Ensayo El ensayo no cumple con los criterios de diseño planteados o bien no están claramente ordenados o definidos ni cumple con la extensión mínima. UNIDAD N°1: OBJETIVO: PROBLEMA: Introducción a. TIPO DE ACTIVIDAD LUGAR ALCANCE FORMA 326 . aunque la entrega fue en el formato preestablecido. creación de nuevos proyectos y elementos de una solución. TEMA: Elaborar un informe técnico (tipo manual / ensayo) acerca del IDE de Visual C#. no clarifican el tema. Diseñar conducir experimentos analizar e interpretar datos Comunicarse Efectivamente Ensayo Profundización del tema Aclaración sobre el tema 1 punto 0. que indique cuáles son los componentes del IDE. Ensayo escrito con tipografía sencilla y que cumple con los criterios de diseño planteados. cómo utilizar los asistentes. escasos. sin detalles significativos o cantidad de detalles. La presentación/exposición fue hecha en tiempo y forma. Ensayo mal planteado que no cumple con los criterios de diseño planteados y con más de tres errores de ortografía.1 puntos Descripción clara y Descripción ambigua del tema Descripción inexacta del tema a sustancial del tema y buena a tratar. sin errores de ortografía. sin claramente presentado así focalizada pero no coherencia entre las partes que lo como de fácil seguimiento. palabras clave. estos puntos no han sido correctamente realizados.

Además. «C#/. en inglés sharp) indica que la nota (C es la nota do en inglés) es un semitono más alta. artículo □Informe de exposición ROLES Y RESPONSABILIDADES DE LOS PARTICIPANTES EN LA TAREA: NOMBRE ROL DESCRIPCIÓN Jennifer Honores Investigador .NET. Anders Hejlsberg formó un equipo con la misión de desarrollar un nuevo lenguaje de 9 James Kovacs (7 de septiembre de 2007). solución procedimiento Introducción C# es un lenguaje de Programación muy extenso. 327 . donde '#' (sostenido.Analista Investigación Desarrollo de la Actividad. ejercicios □Ensayo. esquemas □Caso de estudio □Investigativa □Vinculación con la colectividad □Práctica en laboratorio □Práctica en clase □Resolución de problemas. En enero de 1999.NET History Lesson» (en ingles). el signo '#' se compone de cuatro signos '+' pegados. las bibliotecas de clases fueron escritas originalmente usando un sistema de código gestionado llamado Simple Managed C (SMC).□Intraclase □Extraclase □Individual □Grupal □Taller □Síntesis.9 Durante el desarrollo de la plataforma . por lo cual se ha querido desarrollar con este tipo de investigación un manual para reconocer todos sus componentes. Marco Teórico Según (James Kovacs 7 septiembre 2007) El nombre C Sharp fue inspirado por la notación musical. sugiriendo que C# es superior a C/C++.

sus elementos. hace un análisis acerca del Lenguaje de Programación C# y sobre… ¿Cuáles son sus componentes del IDE?. Este nombre tuvo que ser cambiado debido a problemas de marca.10 Solución o Resultados Elaborar un informe técnico (tipo manual / ensayo) acerca del IDE de Visual C#.programación llamado Cool (C orientado a objetos). creación de nuevos proyectos y elementos de una solución. entre otros. pasando a llamarse C#. diseñadores y editores.NET 2003 (en inglés) 11 Estudiante de la Universidad Técnica de Machala. IDE del Visual C# Componentes Jennifer Honores Cun11 Resumen El presente ensayo. Escuela de Informática Quinto Quimestre “A” 328 . que indique cuáles son los componentes del IDE.Center. ¿Es fácil la utilización de esta herramienta?. cómo utilizar los asistentes. ¿Cómo se maneja la plataforma?. 10 Visual C# Developer Frequently Asked Questions About Visual C# . ya que ahora en el Modulo de Programación haremos énfasis en este lenguaje de programación y se necesita conocer sus componentes.

VII. Plataforma. C#. seguro.NET Acceso a Visual C# Para hacer uso de C# es necesario tener instalado la versión más reciente de Visual 2010 Software necesario: Visual Edición 2010 12 Visual C# Developer Center. Introducción Acceso a Visual C# Conceptos Básicos Elementos de una Solución Propiedades Editores Introducción C# es un lenguaje de programación orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET. Programación Sumario: Resumen V.NET 2003 (en inglés) 329 .Palabras Claves: IDE. Frequently Asked Questions About Visual C# . Lenguajes de Programación. IX. VI. VIII. de alto rendimiento es también la principal herramienta para programar en la plataforma. Editores.Net.12 C# es un lenguaje orientado a objetos. moderno. X. Software.

330 . abra el IDE y crear un nuevo proyecto (File >> New >> Proyecto o Ctrl + Shift + N) seleccionar la Visual C # Aplicación de consola o Aplicación Formulario plantilla en la ventana que aparece y haga clic en Aceptar.Lo que se debe saber: ¿Qué programación es? ¿Qué lenguaje programación es? Conceptos Básicos Inicie Visual Basic Express Página Principal de Microsoft 2010 La caja de Herramientas Más información Proyectos Los archivos del proyecto estarán aquí Para la creación de un nuevo Proyecto: Para empezar.

Una vez que ha creado su proyecto. verá lo siguiente: Elementos de una Solución 331 .

En los elementos de la solución son todos los formularios que se ordenan jerárquicamente para poder hacer uso de cada uno de ellos.vb Propiedades Cambio de la propiedad de texto de un formulario 332 . Cambie el nombre del archivo de la forma de helloForm.

com/contenidos/Tutorial-C/125/Introduccion-a-C. (03 de Octubre de 2006). Recuperado el 14 de Mayo de 2013.Editores Bibliografía  Rodríguez. de http://www. de http://waveengine. (2013). de http://www. T. (12 de Mayo de 2012).aspx  WAVE Corporation. Recuperado el 14 de Mayo de 2013.net/Engine/Documentation 333 .com/programacion-android/xobotos-android-hecho-usando-c-yla-plataforma-mono-prescindiendo-de-java  Seco. Recuperado el 14 de Mayo de 2013. devjoker. Xatak Android. A. J.devjoker. WAVE Corporation.xatakandroid.

NET 334 .UNIDAD II: BASE DE DATOS SQL Y ADO .

UNIDAD III: CONCEPTO DE INTERFAZ GRÁFICA DE USUARIO Y PROGRAMACIÓN EN C# 335 .

Propiedades OBJETIVO: PROBLEMA: Manipular controles que se pueden utilizar para que la interfaz gráfica sea amigable. TIPO DE ACTIVIDAD LUGAR ALCANCE FORMA 336 . y resalta aspectos importantes del tema Toman en cuenta los elementos visuales. Comunicación efectiva. Debe incluir todas las fuentes de donde tomo la información.  Los temas y el contenido presentado son fáciles de entender.1) presentación). (postura.  Responde claramente a las preguntas que se le realizan. Desconocimiento de los controles en los Formularios Windows Forms. CALIFICACIÓN Matrices de Evaluación Criterios de Evaluación PARA EXPOSICIÓN La exposición desarrollada: CONOCIMIENTO SOBRE EL TEMA.1. claridad durante la   Siempre (1) A veces (0.  Los recursos para presentar la exposición.  Toma en cuenta los elementos vocales (mantiene: tono. 6 FECHA ENVIO: 27/05/2013 FECHA ENTREGA: 29/05/2013 Formularios Windows Forms: Controles CheckBox y CheckedListBox 3.Hace énfasis tanto verbal como gestual. La redacción del documento debe ser clara. gestos.2: 3. (Siguiendo las normas y convenciones para la escritura y sin falta de ortografía). trípticos o cualquier otro elemento que permita dar a conocer el tema)  Lo realiza a tiempo.1 y 3. ademanes). Toma en cuenta los elementos verbales. EXPRESIÓN. viste de acuerdo a la ocasión. (explica en forma clara manteniendo coherencia en las ideas que expone). (Diapositivas.2.Actividad N° 6 ACTIVIDAD N°: TEMA: UNIDAD N°3.  Incluye ejemplos claros que permiten un mejor entendimiento del tema. Utiliza un vestuario adecuado para hacer la presentación MATERIAL:  Entrega documentación impresa y digital. EJEMPLOS.Sostiene una postura adecuada durante la exposición. accesorios. Habla con claridad y en forma coherente durante la exposición. CONTENIDO.  Demuestra seguridad en el tratamiento de los temas.Mantiene el mismo tono de voz durante la exposición. Principales controles INDICADOR DE EVALUACION:   Resuelve problemas de Ingeniería de Sistemas.5) Nunca (0. énfasis.

Marco Teórico Según (FERGUSON. El control CheckBox puede mostrar una imagen. Aquí definiremos dos controles que se encuentran en el ToolBox: CheckBox El control CheckBox de Windows Forms indica si una condición establecida está activada o desactivada. dar a conocer las propiedades que posee CheckBox y CheckedListBox. artículo □Informe de exposición ROLES Y RESPONSABILIDADES DE LOS PARTICIPANTES EN LA TAREA: NOMBRE Norma Armijos Investigador .□Intraclase □Extraclase □Individual □Grupal □Taller □Síntesis. El ToolBox es la caja de herramientas en donde se encuentran los controles que se van a usar para diseñar la interface de los diferentes tipos de aplicaciones. SOLUCIÓN O PROCEDIMIENTO Introducción Esta investigación tiene como propósito. 2003) C# es un lenguaje de programación orientado a objetos que utiliza clases y estructuras para implementar tipos como formularios Windows Forms.Analista Jennifer Honores Desarrollador de la actividad ROL DESCRIPCIÓN DESARROLLO DE LA ACTIVIDAD. dos de los controles más usados en WebForms. Puede utilizar grupos de casillas para mostrar múltiples opciones entre las cuales el usuario puede elegir una o más. ejercicios □Ensayo. Tiene dos propiedades importantes: 337 . texto o ambas. Permite al usuario seleccionar uno o más elementos marcando la casilla / casillas de verificación correspondientes. controles de interfaz de usuario y estructuras de datos. y otros. esquemas □Caso de estudio □Investigativa □Vinculación con la colectividad □Práctica en laboratorio □Práctica en clase □Resolución de problemas.

El color de fondo del componente Controla la alineación del checkbox. Tamaño del control. Cambia de estado cada vez que se da clic al botón. Devuelve el estado del checkbox. La propiedad si se puede mover cambiar el tamaño del control. Checked (marcado) o Indeterminate (gris). Imagen que se mostrara en el control. Especifica el espacio entre este control y el margen de otro control. Define a que bordes del contenedor está enlazado. Indica si el control puede aceptar datos que el usuario arrastre. Habilitar el tratamiento automático del texto que se extiende mas ala del ancho del botón. Generalmente usaremos el prefijo chk. Autosize BlackColor CheckAlign Checked CheckState CausesValidation Dock Enabled FlatApperance GenerateMember Image ImageList Locked Margin Name Size 338 . Define los bordes de control enlazados al contenedor Indica si el control esta habilitado. Indica si este componente genera eventos de validación. puede ser: Normal (como casilla) o Button (como botón de comando).Flat. Es utilizado para establecer u obtener la lista de imágenes que contiene la imagen que aparece en una casilla de verificación. Indica si se generara una variable miembro para este componente. en pixeles. Especifica si un control cambiara automáticamente de tamaño para ajustarse a su contenido. determina la apariencia del borde y los colores utilizados para indicar el estado da activación el estado del mouse. Hay 9 posiciones. Para los botones cuyo FlatStyle es FlatStyle. que puede ser: Unchecked (sin marcar).Propiedades Propiedad Appearance AutoCheck AllowDrop Anchor AutoEllipsis Descripción Controla la apariencia del control. Indica si el checkbox ha sido seleccionado o no.

ThreeState

Habilita o deshabilita el estado indeterminado del checkbox cada vez que se da el tercer clic.

Métodos

Método
Focus Hide OnClick Show
Eventos

Descripción
Pone el foco sobre el checkbox. Oculta el checkbox, sin descargarlo de la memoria. Provoca el evento click. Pone visible el checkbox.

Evento
CheckedChanged

Descripción
Ocurre al cambiar el valor de la propiedad Checked del control.

CheckStateChanged Ocurre al cambiar el valor de la propiedad CheckState del control.

CheckedListBox
El control CheckedListBox de los formularios Windows Forms hace casi todo lo que puede hacer un cuadro de lista y puede mostrar una marca de verificación junto a los elementos de la lista. En tiempo de diseño, se pueden agregar elementos a los cuadros de lista con marcas de verificación mediante el Editor de colección de cadenas, o bien se les pueden agregar elementos dinámicamente desde una colección, utilizando la propiedad Items. Propiedades

Propiedad
CheckOnClick ColumnWidth

Descripción
Establece si el control podrá ser fijado la primera vez al dar click. Indica el ancho que debe tener las columnas de un control ListBox de varias columnas. Caracteres de especificador de formato que indica como se muestra un valor. Si esta propiedad es true, el valor de FormatString se utiliza para convertir el valor de DisplayMember en un valor que se pueda mostrar. Indica si se genera una variable miembro para este componente. Determina el estado IME(editor de métodos de entrada) del objeto

FormatString

FormattingEnabled GenerarMember ImeMode

339

cuando se selecciona. IntegralHeight Name ScrollAlwaysVisible Sorted TabIndex ThreeDCheckBox ToolTip en tooltip1 Indica si la lista puede contener solo elementos completos. Generalmente usaremos el prefijo ckl. Indica si el cuadro de lista debe tener siempre una barra de desplazamiento, independientemente de los elementos que tenga. Controla si la lista esta ordenada. Determina el indice del orden de tabulación que ocupara este control. Indica si la apariencia de los items se mostrará en 3D o plano. Determina la información sobre herramientas que se muestra cuando se desplaza el puntero sobre el control. Indica si el usuario puede utilizar la tecla TABULADOR para poner el foco en el control.

TabStop

Métodos

Método
Focus OnClick Show
Eventos

Descripción
Establece el foco de entrada en el control. Provoca el evento click. Muestra el control al usuario

Evento
ItemCheck

Descripción
Ocurre al seleccionar un elemento y poner el check en true.

SelectedIndexChanged Ocurre al seleccionar otro elemento.

SOLUCIÓN O RESULTADOS

340

341

CONCLUSIONES
En conclusión, se pudo comprobar que los componentes CheckBox y CheckedListBox son básicos para algún desarrollo de software, por ejemplo si queremos hacer la alternativa de intereses, el usuario podrá escoger muchas de estas.

REFERENCIA BIBLIOGRÁFICA
 BESTEIRO, Marco y RODRIGUEZ, Miguel. www.ehu.es. C#. [En línea] [Citado el: 09 de 05 de 2013.] http://www.ehu.es/mrodriguez/archivos/csharppdf/Lenguaje/Introduccion.pdf.  FERGUSON, Jeff, y otros. 2003. La Biblia C#. Madrid : Anaya Multimedia, 2003. 84-415-1484-4.

342

Actividad N° 7
ACTIVIDAD N°: 7 FECHA ENVIO: 10/06/2013 FECHA ENTREGA: 13/06/2013

TEMA: UNIDAD N° III:

3. Realizar informe sobre la creación de Clases y Métodos en C#. CONCEPTOS DE INTERFACE PROGRAMACIÓN EN C# Describir los conceptos programación. y GRÀFICA DE USUARIO Y

OBJETIVO:

terminologías

sobre

el

lenguaje

de

PROBLEMA:

El estudiante debe identificar los objetivos del lenguaje de programación C#. CALIFICACIÓN

INDICADOR DE EVALUACION:

Comprometerse con el aprendizaje continuo. Diseñar conducir experimentos analizar e interpretar datos Comunicarse Efectivamente Ensayo Profundizaci ón del tema 1 punto Descripción clara y sustancial del tema y buena cantidad de detalles. 0,5 puntos 0,1 puntos

Descripción ambigua del Descripción inexacta del tema a tratar, algunos tema a tratar, sin detalles detalles que no clarifican significativos o escasos. el tema. Tema con información Tema impreciso y poco bien focalizada pero no claro, sin coherencia entre suficientemente las partes que lo componen. organizado. Ensayo mal planteado que Ensayo simple pero bien no cumple con los criterios organizado con al menos de diseño planteados y con tres errores de ortografía más de tres errores de y tipografía difícil de leer. ortografía. El ensayo cumple con los cuatro criterios de diseño pero no con la extensión solicitada (mínimo 3 páginas) o bien, estos puntos no han sido El ensayo no cumple con los criterios de diseño planteados o bien no están claramente ordenados o definidos ni cumple con la extensión mínima.

Tema bien organizado y Aclaración claramente presentado sobre el así como de fácil tema seguimiento. Ensayo escrito con tipografía sencilla y que Alta calidad cumple con los criterios del diseño de diseño planteados, sin errores de ortografía. El ensayo cumple con los cuatro criterios de Elementos (Resumen, propios del diseño palabras clave, cuerpo Ensayo del ensayo y referencias

343

bibliográficas)

correctamente realizados.

La presentación/exposición fue hecha en tiempo y Presentación forma, además se del Ensayo entregó de forma limpia en el formato pre establecido (papel o digital). TIPO DE ACTIVIDAD LUGAR □Intraclase □Extraclase ALCANCE □Individual □Grupal FORMA □Taller

La presentación/exposición fue hecha en tiempo y forma, aunque la entrega fue en el formato preestablecido.

La presentación/exposición no fue hecha en tiempo y forma, además la entrega no se dio de la forma pre establecida por el docente.

□Práctica en laboratorio □Práctica en clase □Resolución de problemas, ejercicios con a □Ensayo, artículo □Informe de exposición

□Síntesis, esquemas □Caso de estudio □Investigativa □Vinculación colectividad

ROLES Y RESPONSABILIDADES DE LOS PARTICIPANTES EN LA TAREA: NOMBRE Jennifer Honores ROL Investigador - Analista DESCRIPCIÓN Investigación

Desarrollo de la Actividad, solución procedimiento Introducción

Este trabajo nos ayuda a entender cómo crear clases, métodos para saber cómo se comunican entre sí.

Marco Teórico

Métodos:

344

Todo método debe ser parte de una clase, no existen métodos globales (funciones). Por defecto, los parámetros se pasan por valor. (Nótese que las listas y otras colecciones son variables por referencia (referencias al espacio reservado para esa lista en la pila) y que se pasa por valor al método la referencia, pero el espacio reservado para la lista es común, por lo que si elimina un elemento lo hace también de la original).13 Clases: Una variable de objeto de cierta clase no almacena los valores del objeto sino su referencia (al igual que Java). El operador de asignación no copia los valores de un objeto, sino la referencia al mismo (al igual que Java). Solución o Resultados Realizar informe sobre la creación de Clases y Métodos en C#.

C# Creación de Clases y Métodos Jennifer Honores Cun14

Resumen El presente ensayo nos presenta una explicación de: ¿Cómo se crean Clases en C#?, ¿Cómo se crean métodos en C#?, ¿Para qué sirven las clases y los métodos?, ¿Cómo llamar a una clase desde un método en C#?.

13 C# | WebProgramación Artículos, ejemplos, fragmentos de código, etc. 14 Estudiante de la Universidad Técnica de Machala, Escuela de Informática Quinto Semestre “A”

345

Ejercicios de Clases y Métodos Introducción C# (pronunciado si sharp en inglés) es un lenguaje de programación orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma . Definir Clases c. Visual Estudio. Sumario: Resumen XI. CLASES ¿Qué son las Clases? 346 .Palabras Claves: C#. Métodos. Métodos a. Clases a. ¿Qué son las clases? b. ¿Qué son las Métodos? b. Herencia de Clases XII. Clases . Programación.NET. Clases Estáticas d. Parámetros de los Métodos XIII. C# es uno de los lenguajes de programación diseñados para la infraestructura de lenguaje común.

Si la clase no se declara como estática. Define los datos y el comportamiento de un tipo. propiedades. } MÉTODOS ¿Qué son las Métodos? 347 . Herencia de Clases La herencia se realiza a través de una derivación. Declarar Clases Las clases se definen mediante la palabra clave CLASS. propiedades. métodos y eventos.. el código de cliente puede utilizarla mediante la creación de objetos o instancias que se asignan a una variable. como se muestra en el siguiente ejemplo: Public class Customer { // Campos... } Clases Estáticas Las clases estáticas y sus miembros se utilizan para crear datos y funciones a las que se puede tener acceso sin crear una instancia de la clase. propiedades.. del modo siguiente: Public class Manager : Employee { / / Campos de empleados. métodos y eventos van aquí. métodos y eventos van aquí. Una clase es como un plano. lo que significa que una clase se declara utilizando una clase base de la cual hereda los datos y el comportamiento.Una clase es una construcción que permite crear tipos personalizados propios mediante la agrupación de variables de otros tipos. métodos y eventos son heredados / / Campos de nuevo gerente. Una clase base se especifica anexando dos puntos y el nombre de la clase base a continuación del nombre de la clase derivada.

Después del nombre de objeto. AgregarGas (15). Los paréntesis vacíos indican que el método no requiere ningún parámetro. Los parámetros de método se incluyen entre paréntesis y separados por comas. 20). Los parámetros que un método recibe también se proporcionan entre paréntesis. int aceleración) { return 0. el nombre del método y paréntesis. se puede llamar a los métodos de la clase Motocicleta del modo siguiente: Motocicleta Moto = new Motocicleta (). cada instrucción se ejecuta en el contexto de un método. Por tanto. IniciarArranque (). se agrega un punto. En C#. Conducir (5. Moto. Moto. Por ejemplo: public static void PasaEntero() 348 . el valor devuelto. Moto. Los argumentos se enumeran entre paréntesis y separados por comas. los argumentos de entrada se denominan parámetros. Parámetros de los métodos En el método al que se llama.Los métodos son un bloque de código que contiene una serie de instrucciones. Los métodos se declaran en una clase o estructura especificando el nivel de acceso. pero se debe especificar el tipo y nombre de cada parámetro. El nombre no tiene por qué ser igual que el argumento. Esta clase contiene tres métodos Ejemplo: class Motocicleta { Public void IniciarArranque() { } Public void AgregarGas(int galones) { } Public int Conducir(int miles. } } Llamar a un método en un objeto es similar a tener acceso a un campo. el nombre del método y los parámetros de método.

} static void entero(int i) { i = 33. } Ejemplo de Creación de Clases Métodos Realizar un Windows Form que contenga datos personales de una persona.{ int num_44 = 44. Abrimos Visual Estudio 349 . al dar clic en guardar llamar a otra clase de Windows Form y me muestre los datos ingresados enviándolos a un método que reciba dichos parámetros. entero (fortyFour). 1.

Nos aparecerá la siguiente Pantalla 350 .2. Damos Clic en Archivo-->Nuevo Proyecto --> Y escogemos una aplicación de C# 3.

Nos aparecerá la nueva pantalla --> Clic en Aceptar 351 . Dar clic en Proyecto—> Agregar Windows Form 7.4. quedándonos así: 5. Se creara la Nueva Clase con constructor para recibir parámetros 6. Arrastramos todos los componentes necesarios a la Formulario.

8. Arrastramos los componentes Nuevamente: 352 .

Text. } 11. Regresamos al formulario 1. Y Cambiamos nombres de los TextBox 10. EventArgs e) { //Inicializamos la Clase Presentar //Y le enviamos lo que tenia los textos al constructor que recibe parametros Presentar aas= new Presentar(txtNombre. String edad) { InitializeComponent().Text). Damos doble clic y nos aparecerá la ventana de código e ingresamos los siguiente: a.Visible = true. Cambiamos los nombres a los Labels 353 . txtEdad. } } 12. En la clase Presentar debe tener el Constructor recibiendo Parámetros public partial class Presentar : Form { public Presentar(String nombre.9. PARA LLAMAR A LA OTRA CLASE private void button1_Click(object sender. //Hacemos que se haga visible aas.

Creamos un método que reciba parámetros para presentarlos y escribimos lo siguientes: public void recibidoInformacion(String nmb. lblEdad. String dd) { lblNombre.13.Text = dd. A si nos debe quedar 354 . } 14. String edad) { recibidoInformacion(nombre. edad). Llamamos al método recibido informacion de la siguiente manera: public Presentar(String nombre.Text=nmb. InitializeComponent(). } 15.

NET y C# http://msdn.com/es-es/library/ms173114%28v=vs. Geeks.aspx 355 .80%29.Conclusiones Con clases y métodos podemos ver que ambos se pueden pasar información Bibliografía Desarrollo de Software en C# Comunidad virtual para profesionales y/o estudiantes de habla castellana.ms Blogs sobre desarrolladores de la plataforma .microsoft.

artículo □Informe e exposición 356 . Honestidad.Actividad N° 8 ACTIVIDAD N°: 8 FECHA: 12/06/2013 TEMA: UNIDAD N° 3: OBJETIVO: PROBLEMA:  Realizar una Aplicación en C# para crear y manipular objetos CONCEPTO DE INTERFAZ GRÁFICA DE USUARIO Y PROGRAMACIÓN EN C# Crear y manipular Objetos Desconocimiento sobre la creación y manipulación de objetos en Visual Estudio 2010 C# q) Comunicación efectiva r) Asuntos contemporáneos Respeto. Responsabilidad. esquemas □Caso de estudio □Investigativa □Vinculación con la colectividad □Práctica de laboratorio □Práctica de clase □Resolución de problemas. ejercicios CALIFICACIÓN □Ensayo. TIPO DE ACTIVIDAD INDICADOR DE EVALUACION: VALORES: LUGAR ALCANCE FORMA □Intraclase □Extraclase □Individual □Grupal □Taller □Síntesis.

deberá transformarse en mayúsculas. y un número randómico (al azar). solo puede ingresarse letras y espacios. Todo debe ser en mayúsculas. dos primeras letras apellido materno. y la fecha de egreso no puede ser menor a la de ingreso. En Sexo solo ingresará femenino y masculino. así el usuario ingrese minúsculas. El código se generará con: año de nacimiento. La fecha de Ingreso no puede ser mayor a la de hoy. dos primeras letras del apellido paterno. CONCEPTO DE INTERFAZ GRÁFICA DE USUARIO Y PROGRAMACIÓN EN C# Crear y manipular Objetos Desconocimiento para manipular objetos. El Formulario deberá ser diseñado con los siguientes Datos de ingreso: Nombre del Trabajador Apellido Paterno Apellido Materno Sexo Fecha de nacimiento: Fecha de Ingreso Fecha de Egreso Y deberá obtener los siguientes resultados: Edad: Tiempo de servicio: Código autogenerado: Reglas: Todos los campos deben ser ingresados.Actividad N° 9 ACTIVIDAD N°: 9 FECHA: 14/06/2013 TEMA: UNIDAD N° 3: OBJETIVO: PROBLEMA: INDICADOR DE EVALUACION: Ejercicio: Crear un formulario que permita validar campos a ingresar a través del control ErrorProvider. En Apellidos Paterno. Materno y nombre. dos primeras letras nombre. s) Comunicación efectiva 357 . En Fecha de Ingreso y Egreso.

dos primeras letras del apellido paterno.4. Apellido Materno 2. 4. Todo debe ser en mayúsculas. 4. ejercicios CALIFICACIÓN □Ensayo. 2. dos primeras letras nombre. esquemas □Caso de estudio □Investigativa □Vinculación con la colectividad □Práctica de laboratorio □Práctica de clase □Resolución de problemas. TIPO DE ACTIVIDAD LUGAR ALCANCE FORMA □Intraclase □Extraclase □Individual □Grupal □Taller □Síntesis. Código autogenerado: 4. Reglas: 4. Fecha de nacimiento: 2.3.2. En Sexo solo ingresará femenino y masculino. y la fecha de egreso no puede ser menor a la de ingreso.6. Edad: 3. Y deberá obtener los siguientes resultados: 3. Sexo 2.3. deberá transformarse en mayúsculas. artículo □Informe e exposición Solucion o Resultados Ejercicio: 1.6. Nombre del Trabajador 2.1. Fecha de Ingreso 2.4.5. Honestidad. Tiempo de servicio: 3. En Fecha de Ingreso y Egreso.2.t) Asuntos contemporáneos VALORES: Respeto.1. La fecha de Ingreso no puede ser mayor a la de hoy.1. Crear un formulario que permita validar campos a ingresar a través del control ErrorProvider. Fecha de Egreso 3. 4. En Apellidos Paterno.5. El Formulario deberá ser diseñado con los siguientes Datos de ingreso: 2. y un número randómico (al azar) 358 .2. 4. Responsabilidad. dos primeras letras apellido materno. 4.3. Materno y nombre. El código se generará con: año de nacimiento. Apellido Paterno 2. Todos los campos deben ser ingresados. solo puede ingresarse letras y espacios.7. así el usuario ingrese minúsculas.

if (txtNombre. 359 ."). error. "Nombre es Requerido.Para los Puntos (1. 2) se crea la siguiente Imagen Para la elaboración de todos los puntos mencionados se deja todo el código utlizado en esa clase: using System.Clear().Forms. //calculos(). if (txtApellidoPat. } else error. //datos(). // controlarIngresosEgresos(). using System.Clear(). EventArgs e) { controlarVacios().Text == "") { op = 1.SetError(txtNombre.Windows. namespace deber1 { public partial class Form1 : Form { public Form1() { InitializeComponent().Text == "") { op = 1. } private void btnGuardar_Click(object sender. int op = 0. } public void controlarVacios() { error.

Month. if (txtApellidoMat.Year .Day. }else if (dtpEgreso.Year. int meses2 = dtpEgreso. } else error.Year.Text = ""+edad.").error. error.Value > DateTime. "Genero es requerido.SetError(txtApellidoPat. } if (op1 == 0) { calculos(). if (dtpIngreso. "Apellido Paterno es Requerido. int servicioA_os =a_o2-a_o1.meses1. MessageBox.Text == "") { op = 1. } } public void controlarIngresosEgresos() { int op1 = 0.Value.Value. int dias1 = dtpIngreso.Clear().Value) { op1 = 1.Clear().Month.Value. txtEdad.Now) { op1=1.SetError(label5. } else error. //datos()."). MessageBox. //Servicio int a_o1 = dtpIngreso.Clear(). int servicioMeses = meses2 .Value < dtpIngreso. int meses1 = dtpIngreso. int dias2 = dtpEgreso. 360 .a_o. int edad= DateTime.Checked == false && rbMasculino. int servicioDias = dias2-dias1.Show("Fecha de Egreso NO puede ser Menor a la Fecha de Ingreso").Value.Value.SetError(txtApellidoMat. "Apellido Materno es Requerido. if (op == 0) { //Controlar Fechas par continuar controlarIngresosEgresos().Now. if (rbFemenino.Checked == false) { op = 1. int a_o2= dtpEgreso.Value. error.Show("La Fecha de Ingreso NO puede Ser Mayor a Hoy").Day. } else error. } } public void calculos() { //Edad int a_o = dtpNacimiento.Year.Value.").

Text = servicioA_os + ":Años. } private void txtApellidoMat_KeyPress(object sender.ToUpper(e. KeyPressEventArgs e) { if (!(char. lblDatos.Text[0] + "" + txtNombre.KeyChar != (char)Keys.IsLetter(e. String cadNom = txtNombre. }*/ //CONTROL DE TECLAS private void txtNombre_KeyPress(object sender. } } 361 .Text[1].Handled = true.ToUpper().IsSeparator(e.Text[0] +""+ txtApellidoPat.KeyChar). String cadNom = txtNombre.Text. Random varRandom = new Random(). } private void txtApellidoPat_KeyPress(object sender.KeyChar != (char)Keys. return. } e. } e.Text[1].KeyChar = Char.IsSeparator(e.ToUpper()+" "+cadMat.KeyChar)))) { e. return.ToUpper()+" "+cadPat. " + servicioDias+":Dias".Back) && (!(char.IsSeparator(e. txtCodigo.Text = cadNom.Text.KeyChar = Char. String cadPat = txtApellidoPat.IsLetter(e.Text.Back) && (!(char. String cadMat = txtApellidoMat. int numeroRandom = varRandom.Back) && (!(char. " + servicioMeses + ":Meses.ToUpper(e.KeyChar)) && (e.Next(0. } /*public void datos() { String cadPat = txtApellidoPat. KeyPressEventArgs e) { if (!(char.KeyChar = Char.KeyChar)) && (e. return. String cadMat = txtApellidoMat.KeyChar != (char)Keys.IsLetter(e.Text[0] + "" + txtApellidoMat.ToUpper(e.KeyChar).Handled = true. 99).KeyChar)))) { e.KeyChar).KeyChar)))) { e.txtServicios.Text[1]. KeyPressEventArgs e) { if (!(char. } e.KeyChar)) && (e.Text = a_o + "" + cadPat + "" + cadMat + cadNom + ""+numeroRandom.Handled = true.

} 362 .

Canciones. TIPO DE ACTIVIDAD LUGAR ALCANCE FORMA 363 . Cuando el jugador seleccione una categoría. Cada palabra a adivinar debe pertenecer únicamente a una categoría y se debe incluir una pista. Ciudades. Realizar una aplicación en C#. ésta debe reemplazar al guión.(Ver Calculadora de Windows) 2. (Ustedes eligen) b. d. el juego terminará cuando se haya completado el dibujo. Cada vez que se ingrese una letra que no se encuentra en la palabra a adivinar se debe dibujar el ahorcado. TEMA: UNIDAD N° 3: OBJETIVO: PROBLEMA: INDICADOR DE EVALUACION: VALORES: CONCEPTO DE INTERFAZ GRÁFICA DE USUARIO Y PROGRAMACIÓN EN C# Crear y manipular Objetos Desconocimiento para manipular objetos. c. Películas.Actividad N° 10 ACTIVIDAD N°: 10 FECHA: 05/07/2013 Ejercicio: 1. Se debe presentar guiones (_) por cada letra de la palabra a adivinar. cada vez que se adivine una letra. Honestidad. u) Comunicación efectiva v) Asuntos contemporáneos Respeto. por ejemplo: Animales. Responsabilidad. e. Realizar una aplicación en C# donde simule las funciones de una calculadora. Debe contar con al menos 4 categorías. coloco algunos lineamientos que deben considerar: a. que simule el juego del ahorcado. las palabras a adivinar debe aparecer utilizando un orden aleatorio.

ejercicios CALIFICACIÓN □Ensayo. esquemas □Caso de estudio □Investigativa □Vinculación con la colectividad □Práctica de laboratorio □Práctica de clase □Resolución de problemas. artículo □Informe e exposición 364 .□Intraclase □Extraclase □Individual □Grupal □Taller □Síntesis.

Nos tiene que quedar la ventana: 4. System.Forms.Windows. System.Data. Creamos una clase tipo FORM: 3.(Ver Calculadora de Windows) Realizacion: 1. Programamos todos los botones CODIGO using using using using using using using using System.Desarrollo de la actividad Ejercicio 1: 1. Realizar una aplicación en C# donde simule las funciones de una calculadora.ComponentModel. System.Drawing. System.Collections. System. Creamos un nuevo proyecto 2.Linq. namespace Deber2 { public partial class Form1 : Form 365 . System.Generic.Text. System.

EventArgs e) { valor1 = double. txtIngreso.{ int contadorDecimal. txtIngreso.TextLength == 1) { txtIngreso. int decimalInt=1.Text = "0". } else { String texto=txtIngreso. EventArgs e) { } private void btnC_Click(object sender. EventArgs e) { if(txtIngreso. int contadorResta = 1. 366 . int contadorPotencia=1. if (valor1 != 0) { if (valor1 < 0) { valor1 = valor1 * (-1).Parse(txtIngreso. } } } private void btnRaiz_Click(object sender. } private void btnRetroceso_Click(object sender. } private void btnMasMenos_Click(object sender.Text = "0". double valor1.TextLength .Text = valor1+"". int contadorMultiplicacion = 1. Boolean cont. txtIngreso.Parse(txtIngreso.1). double [] vectorOperaciones = new double[1].Text).Text = valor1 + "". } else { valor1 = valor1 * (-1). EventArgs e) { txtIngreso. int contadorSuma. int operacionesCasos.Text[0]!=0){ if (txtIngreso. txtIngreso. double [] vectorMultiplicacion=new double[2]. int contadorDivision = 1.Text = texto.Text). public Form1() { InitializeComponent().Text. EventArgs e) { valor1 = double. } } } private void btnCe_Click(object sender.Substring(0.

double valor1Double = double. EventArgs e) { if (txtIngreso.TextLength <= 9) { agregarTexto("5"). } } private void btn2_Click(object sender. } } private void btn5_Click(object sender.Parse(txtIngreso. EventArgs e) { if (txtIngreso.TextLength <= 9) { agregarTexto("9"). } } private void btn1_Click(object sender. } } private void btn6_Click(object sender.TextLength <= 9) { agregarTexto("1").Text = valor1Double + "". } } private void btn8_Click(object sender. if (valor1 != 0) { valor1Double = Math. EventArgs e) { if (txtIngreso. EventArgs e) { if (txtIngreso.Text). EventArgs e) { agregarTexto("2"). EventArgs e) { if (txtIngreso.TextLength <= 9) { agregarTexto("7"). } } private void btn7_Click(object sender.TextLength <= 9) { agregarTexto("4"). txtIngreso.TextLength <= 9) { agregarTexto("6"). EventArgs e) { if (txtIngreso.Sqrt(valor1Double). EventArgs e) { if (txtIngreso. 367 . } } private void btn9_Click(object sender.TextLength <= 9) { agregarTexto("8"). } } private void btn4_Click(object sender.

Text.").TextLength.Equals(punto)) { //NO SE AGREGARA MAS PUNTOS SI HAY EN LA CAJA DE TEXTO contadorDecimal = 0. char punto='.Equals("0")) { txtIngreso. i++) { texto=txtIngreso.Text.Text. String numero = dato. } } if (contadorDecimal == 1) { if (txtIngreso.").TextLength <= 9) { agregarTexto("3"). } } } public void agregarTexto(String dato) { if (txtIngreso. if (texto. String cadenaTexto=txtIngreso. i = txtIngreso.'. i < txtIngreso.Equals("0")) { agregarTexto("0. EventArgs e) { if (txtIngreso. } else { String texto = txtIngreso. String completo = texto + numero. 368 .Text = dato.} private void btn3_Click(object sender. } } private void btn0_Click(object sender. } else { //ENTRO NO HAY PUNTOS contadorDecimal = 1. for (int i=0.Text[i]. } } private void btnComa_Click(object sender. EventArgs e) { char texto. EventArgs e) { if (txtIngreso.Text.TextLength.TextLength <= 9) { agregarTexto("0"). } else { agregarTexto(".

break.Text = completo.Text = "". break.Parse(txtIngreso. } public void OperacionSuma() { double auxiliarSuma2 = double. double auxiliarSuma1 = double.Text). vectorOperaciones[0] = vectorOperaciones[0] + auxiliarSuma2. vectorOperaciones[0] = auxiliarResta.Text). txtIngreso. vectorOperaciones[0]=0. EventArgs e) { operacionesCasos = 2. } //RESTA private void btnMenos_Click(object sender. vectorOperaciones[0] = vectorOperaciones[0] + auxiliarSuma1. txtIngreso. if ((contadorMultiplicacion++) < 2) { double auxiliarResta = double. vectorOperaciones[0] = vectorOperaciones[0] . } 369 . txtIngreso.Text).break. } else { double auxiliarResta = double.auxiliarResta.txtIngreso. case 4: //Division OperacionDivision(). case 5: //Potencia OperacionPotencia(). } } //SUMA private void btnMas_Click(object sender.Text = vectorOperaciones[0]+"". } } private void btnIgual_Click(object sender.Text = "".Parse(txtIngreso. EventArgs e) { operacionesCasos = 1.Parse(txtIngreso.Text = "".Parse(txtIngreso. EventArgs e) { switch (operacionesCasos) { case 1: //Suma OperacionSuma().Text). break. txtIngreso.break. case 3: //Multiplicacion OperacionMultiplicacion(). case 2: //Resta OperacionResta().

} } public void OperacionDivision() { double auxiliarDivision = double.Text). vectorOperaciones[0] = 0. } else { double auxiliarMultiplicacion = double.Text). } 370 .Parse(txtIngreso.Parse(txtIngreso. EventArgs e) { operacionesCasos = 3. vectorMultiplicacion[0] = vectorMultiplicacion[0] * auxiliarMultiplicacion. vectorMultiplicacion[0] = vectorMultiplicacion[0] * auxiliarMultiplicacion. txtIngreso.Text). } } public void OperacionMultiplicacion() { double auxiliarMultiplicacion = double. } //DIVISION private void btnDivisor_Click(object sender.Text = vectorOperaciones[0] + "". } //MULTIPLIACION private void btnMultipliador_Click(object sender. if ((contadorDivision++) < 2) { vectorOperaciones[0] = 1. vectorOperaciones[0] = vectorOperaciones[0] / auxiliarDivision. vectorOperaciones[0] = auxiliarDivision.Parse(txtIngreso. vectorOperaciones[0] = vectorOperaciones[0] / auxiliarDivision.} public void OperacionResta() { double auxiliarResta2 = double.Text).Text).Text = vectorMultiplicacion[0] + "". txtIngreso. txtIngreso.Parse(txtIngreso.auxiliarResta2.Parse(txtIngreso.Text = vectorOperaciones[0] + "". EventArgs e) { operacionesCasos = 4.Text).Parse(txtIngreso. } else { double auxiliarDivision = double. double auxiliarDivision = double. if ((contadorMultiplicacion++) < 2) { vectorMultiplicacion[0] = 1.Text = "". vectorMultiplicacion[0] = 1. vectorOperaciones[0] = vectorOperaciones[0] .Text).Text = "". txtIngreso. txtIngreso. double auxiliarMultiplicacion = double. txtIngreso.Text = "".Parse(txtIngreso.Text = "". vectorMultiplicacion[0] = vectorMultiplicacion[0] * auxiliarMultiplicacion. txtIngreso.

Realizar una aplicación en C#. Cada vez que se ingrese una letra que no se encuentra en la palabra a adivinar se debe dibujar el ahorcado. txtIngreso. coloco algunos lineamientos que deben considerar: a. ésta debe reemplazar al guión.Text). c. vectorOperaciones[0] = auxiliarPotencia. (Ustedes eligen) b. el juego terminará cuando se haya completado el dibujo.//POTENCIA private void btnExponente_Click(object sender. Debe contar con al menos 4 categorías. if ((contadorPotencia++) < 2) { double auxiliarPotencia = double.Text = auxiliarResultado + "". Canciones. double auxiliarPot = double. d. Creamos una clase tipo FORM: 3. Realizacion: 1. Se debe presentar guiones (_) por cada letra de la palabra a adivinar. que simule el juego del ahorcado. auxiliarPot).Text). Nos tiene que quedar la ventana: 371 . Cuando el jugador seleccione una categoría. txtIngreso.Parse(txtIngreso.Parse(txtIngreso. vectorOperaciones[0] = 0. cada vez que se adivine una letra.Pow(vectorOperaciones[0]. Creamos un nuevo proyecto 2. } } public void OperacionPotencia() { double auxiliarResultado. EventArgs e) { operacionesCasos = 5. e. Películas. por ejemplo: Animales. Ciudades. Cada palabra a adivinar debe pertenecer únicamente a una categoría y se debe incluir una pista. las palabras a adivinar debe aparecer utilizando un orden aleatorio. } } } Ejercicio 2: 2. auxiliarResultado = Math.Text = "".

Data. System. namespace Deber2 { public partial class Ahorcado : Form { public String nombreCategoria. public String palabraBd.OleDb.Drawing.Data. public int auxiliarDibujo=0. public DataRow dr. System. } 372 . public int filas = 0. System. System.Forms. public char []vectorAux. System.Collections. public Ahorcado() { InitializeComponent(). Programamos todos los botones CODIGO using using using using using using using using using System.4.Windows.Linq. System.Enabled = false. gbContenedor. public String nombreTabla = "". public String palabraBdPista.Text. System. System.ComponentModel.Generic. public DataSet ds.

Visible = false. categoria("Categoria3"). } private void btnNuevo_Click(object sender. activarTeclas(false. EventArgs e) { } private void btnJugar_Click(object sender.Visible = false.Text = "Juego Categoria: "+nombreTabla.private void Ahorcado_Load(object sender.Checked) { nombreTabla = "Categoria4". ahoPalo2. ahoPalo3.Visible = false.Visible = false.Checked) { nombreTabla = "Categoria2".Checked) { nombreTabla = "Categoria1".Visible = false. ahoMuñeco6. } public void esconderAhorcado() { ahoPalo1. categoria("Categoria2").Enabled = false. } 373 .Enabled = true. categoria("Categoria1"). ahoPalo4. } } public void categoria(String categoria) { gbContenedor.Visible = false. EventArgs e) { if (rbCategoria1. auxiliarDibujo = 0. ahoMuñeco2.Visible = false.Visible = false. ahoMuñeco3. ahoMuñeco5.Checked) { nombreTabla = "Categoria3".Visible = false. gbJuego. true). ahoMuñecoFin. categoria("Categoria4"). } if (rbCategoria4. btnJugar. escogerCategoria(). gbContenedor. true).Visible = false. EventArgs e) { activarTeclas(false. esconderAhorcado(). } if (rbCategoria2.Enabled = true. ahoMuñeco4. ahoMuñeco1.Visible = false. } if (rbCategoria3.

Text = cadenaTextoForm.Enabled = teclado.Enabled = teclado..Enabled = teclado.Enabled = teclado.Length. btnO.ACE. btnB.Length. btnZ. btnÑ. btnV.Enabled = teclado.Enabled = teclado. btnX. btnC. txtPalabra.Enabled = teclado. } } public void conexionBd() { //buscar en tablas //Hacer la consulta a la tabla consulta //Hacer un numero aletorio y hacer una busquedad en ese registro //Cojer las variables de texto. btnL.ToUpper().Enabled = teclado. btnG. btnA.Enabled = teclado. for (int i = 0.Enabled = teclado.OLEDB. txtPista. } txtPalabra. btnH. btnE.Enabled = teclado.Enabled = teclado. btnK. vectorAux = new char[palabraBd.Enabled = teclado. btnW.Enabled = teclado.public void activarTeclas(Boolean tcla. //Llenar de guiones la caja de texto String cadenaTextoForm = txtPalabra.12. btnR.Enabled = teclado.Enabled = teclado.Text = palabraBdPista. palabraBd=palabraBd. btnJ. btnN.Enabled=tcla. for(int i=0.Enabled = teclado.Enabled = teclado.Text = "". txtPista.Enabled = teclado.Enabled = teclado.Data Source=C:\Users\Computron\Documents\Ahorcado. btnM.accdb").Enabled = teclado. btnD. btnU.0. 374 . i < palabraBd.Enabled = teclado. btnP. i++) { vectorAux[i] = '-'.Enabled = teclado. btnI. i<palabraBd.i++){ cadenaTextoForm = cadenaTextoForm + ". } public void escogerCategoria() { conexionBd().Enabled = teclado.Enabled = teclado. btnT.".Length]. btnS.Text = "". btnQ. pista.Text. btnY. btnF.Enabled = teclado.Boolean teclado) { btnJugar.Enabled = teclado. numero de caracteres de la palabra OleDbConnection conex = new OleDbConnection(@"Provider=Microsoft.

Fill(ds.ToString(). for (int i = 0. cadenaAux = cadenaAux +vectorAux[i] .Text = "". String cadenaAux="".Tables[nombreTabla]. filas = ds.Visible = true. nombreTabla). } else { cadenaAux = cadenaAux + vectorAux[i]. i++) { txtPalabra.Tables[nombreTabla]. char [] vectorChar = new char [palabraBd. i++) { if (palabraBd[i]. case 2: //Dibujar Palos 3 y 4 ahoPalo3.Show("HA GANADO EL JUEGO"). contador++.Rows. break. ds = new DataSet(). i < palabraBd.Length) { auxiliarDibujo = auxiliarDibujo+1. char[] vectorAuxiliarText = new char[palabraBd.Length.Enabled = false.Next(filas). i < palabraBd. dibujarAhorcado(auxiliarDibujo).Equals(letraComparar)) { vectorAux[i] = letraComparar. dr = ds. } if (txtPalabra. conex). } public void operaciones(char letraComparar) { int contador=0.ToString().Text+vectorAux[i]. filas=ran. ahoPalo4.Visible = true. ahoPalo2.Rows[filas].Count.Visible = true.Length. } } public void dibujarAhorcado(int num) { switch (num) { case 1: //Dibujar Palos 1 y 2 ahoPalo1. Random ran= new Random(). palabraBdPista = dr["Pista"]. } } txtPalabra.OleDbDataAdapter bd = new OleDbDataAdapter("select * from "+nombreTabla. for (int i = 0.Length].Length]. } if (contador == palabraBd.Text = txtPalabra.Text. gbContenedor. 375 .Visible = true. //asigna los valores de los campos en los objetos del formulario palabraBd = dr["palabra"]. bd.Equals(palabraBd)) { MessageBox.

Enabled = false. break. } private void btnD_Click(object sender. //DIBUJAR MUÑECO case 3: //Dibujar Cabeza ahoMuñeco1. EventArgs e) e) e) e) e) 376 . activarTeclas(false. FIN DE JUEGO ahoMuñecoFin.Visible = true. MessageBox.Visible = true. } private void btnC_Click(object sender. case 4: //Dibujar Cuerpo ahoMuñeco2. case 8: //Dibujar Pierna 1 ahoMuñeco5. break. break. operaciones('A'). case 10: //Dibujar Ahorcado.Visible = true. break. EventArgs { btnB.Enabled = false. case 5: //Dibujar Brazo 1 ahoMuñeco3.Visible = true. } } /* * * TECLAS SE DESACTIVAN AL PRESIONARLAS * */ private void btnA_Click(object sender. case 7: //Dibujar Brazo 2 ahoMuñeco4. EventArgs { btnC.Enabled = false. operaciones('B'). } private void btnB_Click(object sender.Visible = true. case 9: //Dibujar Pierna 2 ahoMuñeco6.break. operaciones('D').Enabled = false. } private void btnE_Click(object sender.Visible = true. break.Show("Perdio: Palabra Correcta: "+palabraBd). EventArgs { btnA. operaciones('C'). break. break. false). EventArgs { btnD.Visible = true.

EventArgs e) sender. operaciones('N'). } private void btnN_Click(object { btnN. EventArgs e) sender. } private void btnL_Click(object { btnL.{ btnE. EventArgs e) sender.Enabled = false. operaciones('O').Enabled = false. } private void btnF_Click(object { btnF. } private void btnI_Click(object { btnI. } private void btnÑ_Click(object { btnÑ.Enabled = false.Enabled = false. } private void btnP_Click(object { sender. operaciones('E'). } private void btnM_Click(object { btnM. operaciones('Ñ').Enabled = false. EventArgs e) 377 . EventArgs e) sender. operaciones('J'). operaciones('G'). } private void btnK_Click(object { btnK.Enabled = false. EventArgs e) sender. EventArgs e) sender. operaciones('L').Enabled = false.Enabled = false. operaciones('H'). EventArgs e) sender. } private void btnJ_Click(object { btnJ.Enabled = false. EventArgs e) sender.Enabled = false. operaciones('K'). operaciones('F').Enabled = false. } private void btnG_Click(object { btnG.Enabled = false. operaciones('I'). EventArgs e) sender. operaciones('M'). } private void btnH_Click(object { btnH. EventArgs e) sender. EventArgs e) sender. } private void btnO_Click(object { btnO.

} private void btnU_Click(object { btnU. EventArgs e) sender. operaciones('R'). } private void btnW_Click(object { btnW. } } } sender. operaciones('P').Enabled = false. operaciones('Y'). EventArgs e) sender. operaciones('V'). EventArgs e) sender. } private void btnQ_Click(object { btnQ. operaciones('X'). } private void btnY_Click(object { btnY. EventArgs e) sender. operaciones('S'). EventArgs e) 378 . EventArgs e) sender. } private void btnX_Click(object { btnX. EventArgs e) sender.btnP. operaciones('U'). EventArgs e) sender.Enabled = false. } private void btnV_Click(object { btnV.Enabled = false. } private void btnT_Click(object { btnT.Enabled = false.Enabled = false.Enabled = false. operaciones('Q'). operaciones('W'). } private void btnZ_Click(object { btnZ.Enabled = false.Enabled = false. operaciones('T'). EventArgs e) sender.Enabled = false.Enabled = false. } private void btnS_Click(object { btnS. operaciones('Z').Enabled = false. EventArgs e) sender. } private void btnR_Click(object { btnR.

UNIDAD IV: PRESENTACIÓN DE RESULTADOS 379 .

EVALUACIONES PARCIALES 380 .

i++) { valorCapicua[i] = textBox1. System. System.IsNumber(e.Data.Windows.Codigo using using using using using using using using System.Text.Text[contador]. valorOriginal = new String[tama+1].ComponentModel. "Solo Numeros"). if (!Char. return. int contador = tama-1.SetError(textBox1. namespace Leccion2 { public partial class Form1 : Form { String[] valorOriginal. System. System. Char [] valorCapicua.TextLength. errorProvider1.Linq.Handled = true.Generic. public Form1() { InitializeComponent(). KeyPressEventArgs e) { errorProvider1.Drawing. for (int i = 0. } } private void button1_Click(object sender. i < tama. System.Clear(). EventArgs e) { int tama= textBox1.Forms. valorCapicua = new Char [tama+1].KeyChar)) { e. 381 . System. System. } private void textBox1_KeyPress(object sender.Collections.

listBox2. EventArgs e) { String valorSeleccion = listBox2.contador--.Items.SelectedItem.Show("Si es Capicua").SelectedItem.Handled = true. } private void listBox2_DoubleClick(object sender. listBox2. i < tama.Text[i]. return.Items. for (int i = 0. textBox2. listBox1.Text = "". } } private void button2_Click(object sender.ToString().Add(textBox2. } } if (aux == 1) { MessageBox.KeyChar)) { e.IsLetter(e.Show("No es Capicua"). EventArgs e) { listBox1. listBox1.Items. KeyPressEventArgs e) { if (!Char.Add(valorSeleccion).Remove(valorSeleccion).Remove(valorSeleccion). } private void listBox1_DoubleClick(object sender. } int aux=1. i++) { if (textBox1.Items.Text).Add(valorSeleccion).ToString().Items. } } } 382 . EventArgs e) { String valorSeleccion = listBox1. } } private void textBox2_KeyPress(object sender.Equals(valorCapicua[i])) { } else { aux = 0. } else { MessageBox.

EXAMEN FINAL 383 .

PROYECTO FINAL 384 .

Datos de la empresa (dirección. transicione Cada párrafo presenta s) una idea distinta. historia) 4.CONTROL DE PROYECTO N°: 1 FECHA ENVIO: 12/06/2013 Elaborar la propuesta de investigación para el proyecto final del módulo. El anteproyecto debe incluir: 1. Desconocimiento de los requerimientos de información para desarrollar un software. teléfonos. en la 385 . conducir experimentos. No incluye exposición general del tema. Antecedentes (fecha de creación. Nombre de la Empresa TEMA: 2. sus subdivisiones principales o no son relevantes.) 3. La introducción incluye el propósito. Tiene coherencia y presenta fluidez en la Organizació transición de las ideas. Tiene coherencia pero la transición de las ideas entre los párrafos no se presenta con fluidez. Las ideas no se presentan en orden lógico. El propósito. n (párrafos El orden de los párrafos y refuerza el contenido. funciones. confusa o está ausente. actividad.5 puntos No se presenta la exposición general del tema o las subdivisiones principales. 0. analizar e interpretar datos. El espacio en blanco o las gráficas contribuyen a la organización. La estructura o el orden Tiene errores en la de las palabras (sintaxis) estructura de las en las oraciones es oraciones. procesos) 5. es inefectiva. Necesita añadir más espacios en blanco para contribuir a la organización. El propósito. Selección y Descripción del área que se va a implementar la automatización. Los espacios en blanco no son suficientes para contribuir a la organización. Cohesión Las ideas presentan orden lógico. etc. exposición Introducció general del tema. n objetivos claros y subdivisiones principales. Descripción de la Empresa (organigramas. el tema y los objetivos requieren clarificación o no se presentan de forma objetiva. el tema y los objetivos no están claros. OBJETIVO: PROBLEMA: Explicar la factibilidad del proyecto. CALIFICACIÓN INDICADOR DE EVALUACION: Comunicarse efectivamente Diseñar . Tiene demasiados errores de puntuación y en la utilización de los Las ideas se presentan en orden lógico. El orden y las ideas de los párrafos refuerzan limitadamente el contenido. No tiene coherencia. las transiciones entre párrafos es pobre o ninguna y el orden de los párrafos no refuerza el contenido.1 puntos La introducción está incompleta. Valoración 1 punto 0.

artículo □Informe de exposición ROLES Y RESPONSABILIDADES DE LOS PARTICIPANTES EN LA TAREA: NOMBRES Norma Armijos Jennifer Honores Giovanni Ochoa Investigador . Muchas ideas se repiten.Analista Desarrolladores del Proyecto ROL DESCRIPCIÓN 386 . ejercicios □Ensayo. conjugación de verbos. Las palabras seleccionadas son poco apropiadas. Selecciona cuidadosamente las palabras. Tiene errores No tiene errores ortográficos. El texto es prácticamente un copiado y pegado. palabras son Tiene muchos errores que distraen considerablemente o totalmente al lector. poca originalidad. No documento presenta muy utilizó el copiar y pegar. LUGAR □Intraclase □Extraclase FORMA □Práctica en laboratorio □Práctica en clase □Resolución de problemas. Algunas Éstas no se repiten ni se ideas se repiten. La voz no es activa y es Voz activa. Las ideas que se presentan tienen poca o ninguna relación con el tema. con el tema. Una buena cantidad de Todas las ideas que se las ideas que se presentan tienen relación presentan tienen relación directa con el tema. de ortográficos. están pobremente definidas. esquemas □Caso de estudio □Investigativa □Vinculación con la colectividad pronombres. audiencia. Son frecuentes fragmentos y oraciones incompletas. objetividad. Corrección (gramática) Contenido puntuación y en la utilización de los pronombres. de acentuación o acentuación o de conjugación de verbos. no son claras ni se presentan con objetividad. Los errores distraen al lector. apropiada poco apropiada para el para el tema y la tema y la audiencia. TIPO DE ACTIVIDAD ALCANCE □Individual □Grupal □Taller □Síntesis.lógico. El presentan lagunas. Tiene muy pocos errores de puntuación o en la utilización de pronombres. Muestra falta de cuidado. Las ideas se presentan Éstas deben presentarse con claridad y con mayor claridad u objetividad. Las seleccionadas inapropiadas.

dos son mixtos y siete solo para hombres. ⁄ Vía a Pasaje Provincia El Oro . al 2010. dos son para mujeres. funcionan once centros de internamiento paras las y los adolescentes que han infringido la ley Penal. El número de adolescentes que ingresan a los centros para ser custodiados (quienes tienen medidas cautelar). logrando así reinsertarlo a la sociedad como un elemento productivo de bien. o bajo la responsabilidad del centro (quienes tienen medidas socio educativas) varía por mes. de sexo masculino que hayan infringido la ley para promover su desarrollo personal.Tema: SISTEMA INFORMÁTICO CAI Nombre de la empresa Centro de Atención de Adolescentes Infractores N° 4 El Oro Datos de la empresa Coordinador: Lcdo. Ramiro Bolívar Román Valdivieso Dirección: Parroquia El Cambio km. según la estadística de la DANCAI. Descripción de la empresa El Centro de Atención de Adolescentes Infractores N°. 4 El Oro en conflicto con la Ley Machala es una entidad pública sin fines de lucro que recibe a personas de 12 a 18 años de edad. destrezas interpersonales y ocupacionales.Cantón Machala Teléfono: 072992732 Antecedentes En el Ecuador. De estos. 387 . habilidades.

son los siguientes: Coordinador Es el encargado de realizar las respectivas revisiones y peticiones de las autoridades competentes del centro para la realización de sus actividades a la mejora de la institución.Archivador Es el encargado de recibir todas las actas. hacen el respectivo análisis. desarrollo y control de todas las actividades diarias de la institución.Chofer y Psicólogo. Organigrama Coordinador del CAI Dirección CAI Unidad de Desarrollo Unidad de Operación Unidad de Salud Unidad de Logística Funciones El Coordinador de CAI .De cada adolescente se tendrá un expediente el cual contendrá la historia de la vida del adolescente y su familia o personas de su vínculo afectivo. 4 El Oro en conjunto con los departamentos de Talento Humano .Centro de Adolescentes Infractores N°. Traslado . y el trabajo realizado con ellos por cada uno de los funcionarios del Centro desde el momento que ingresa el adolescente hasta que sale en libertad. Talento Humano . correspondiente a cada adolescente para la valoración de un informe al centro de infractores.Bodeguero. Psicólogo Es el encargado de realizar un análisis general. fichas de personas internas y profesional que trabajan dentro del mismo. Trabajadora Social. 388 . así como un análisis profundo de la historia de la familia del adolescente. fichas de los menores. Procesos Los procesos que realiza la institución en cada departamento.

traslado a diferentes lugares que se deseen. realiza las respectivas encomiendas por cada uno de los profesionales que laboran en el Centro de Adolescentes Infractores. 389 . Chofer Es el encargado de realizar el recorrido. también llenando una ficha de cada interno por la visita o diálogo sobre su comportamiento dentro del centro.Trabajadora social Es la encargada de la movilización respectiva a los adolescentes en estado de enfermedad a un centro de salud.

Actualiza. Elimina. Imprime la información de los Oficios. Actualiza. Ingresa. Ingresa.  Iniciar Sesión  Adolescente  Registrar inventario  Operaciones con oficios Módulos Inicio Sesión Adolescente Inventario Oficios Descripción Inicia Sesión con su respectivo usuario para que solo pueda hacer sus procesos Ingresa. Elimina. Actualiza. mediante una ficha digital para guardarla en una base de datos y también de registrar los productos que se ingresan al centro de infractores de El Oro.Selección y Descripción del área que se va a implementar la automatización. Elimina. Selección de Áreas:    Norma Armijos: Área del Psicólogo Jennifer Honores: Área de Trabajadora Social Giovanni Ochoa: Área del Archivador Descripción: Área de Archivador --> GIOVANNI OCHOA Sería de ingresar de forma automática los datos de los adolescentes y del tutor. Imprime la información de los Inventario. 390 . Imprime cada registro de adolescente.

obtendrá el número de oficio automáticamente para de esta manera tener una secuencia con todos los departamentos.  Buscar Ficha Médica: Permitirá buscar la ficha del adolescente que previamente ha sido atendido  Actualizar Ficha Médica: Permitirá que actualice alguna información del adolescente. Generará reportes por Fecha para entregar en informes. Ingresa.Área de Psicólogo --> NORMA ARMIJOS En este departamento del Centro de Infractores se atienden a los adolescentes para llevar un control de la salud de cada uno de ellos. Trabajadora Social --> JENNIFER HONORES  Iniciar Sesión: Inicia Sesión en el departamento que le corresponda. Actualiza. Elimina.  Salida de Adolescente: Dar de baja a un adolescente cuando se retira del centro. Elimina. Actualiza.  Oficios  Reportes: Generar Reportes de Fichas sociales. Imprime cada registro de Ficha Médica con su respectivo Historial. Imprime la información de los Oficios.  Generar Oficios: Cada vez que necesite redactar un oficio. talleres y baja de adolescente. Tenemos operaciones como:  Iniciar Sesión  Ingresar Ficha Médica: Se registra todo el historial clínico del adolescente internado que ha sido tratado por el psicólogo.  Ficha Social: Registra la Trabajadora Social cada adolescente del centro mediante informes. Módulos Inicio Sesión Ficha médica Reportes médicos Oficios Descripción Inicia Sesión con su respectivo usuario para que solo pueda hacer sus procesos Ingresa. 391 .  Asignar taller: Se escogerá un taller para el adolecente.  Generar Reportes Médicos: Se podrá imprimir las fichas médicas de cada adolescente.

Imprime cada registro de Ficha Social. Elimina. Generar reportes por fecha de las Información sobre las fichas Sociales. Ingresa. Actualiza. Ingresa. Imprime cada registro de asignaciones de talleres para los adolescentes. Imprime la información de los Oficios. Actualiza. Elimina. Actualiza. de talleres realizados y de salida de adolescente.Módulos Inicio Sesión Ficha Social Taller Oficios Descripción Inicia Sesión con su respectivo usuario para que solo pueda hacer sus procesos Ingresa. Elimina. Imprime la información de los Baja de Adolescente. Actualiza. Ingresa. Reportes Salida de Adolescente 392 .

Sign up to vote on this title
UsefulNot useful