Sei sulla pagina 1di 70

C# C# C# C# C# C# C# C# C# INTRODUCCION A C# C# Juan Pablo Luna Felipez Ing.

C#
UNIVERSIDAD NACIONAL SIGLO XX REA DE TECNOLOGA ING ENIERIA INFO RMTICA

A m querido hijo Junior, a quien quiero mucho y quien con su corta hacindome edad alegra mucho mi existencia, hacindome entender que la felicidad se encuentra en las cosas ms sencillas de la vida

PROLOGO

Son varios los Lenguajes de Programacin existentes en la actualidad, y existen varios criterios para elegir un determinado lenguaje de programacin de acuerdo a la tarea que se desee realizar, existen foros en Internet que dan mucha discusin y luces sobre las ventajas y desventajas de emplear un determinado Lenguaje de Programacin.

En el proceso docente educativo, la eleccin de un determinado lenguaje de programacin a ensear en una determinada asignatura, esta sujeto a diversas variables para poder definir las habilidades que se desea que alcance el estudiante, se debe elegir lenguajes que tengan cualidades necesarias acordes al perfil profesional, mercado laboral, al avance de la ciencia de la informtica, e inclusive a las condiciones del centro de educacin, el presente texto trata del lenguaje de programacin C#.

La estructura del texto esta organizado en captulos, donde cada capitulo esta dedicado a un tema especfico, emplea un lenguaje sencillo y de fcil comprensin, con una amplitud de tema adecuado y con ejemplificaciones; generalmente se utiliza una serie de pasos para describir los diversos procesos.

Quiero agradecer muy particularmente a los alumnos de la carrera de Ingeniera Informtica, quienes en con su apoyo y en su deseo de superacin me motivaron a elaborar el presente texto.

Llallagua Potos Bolivia, Octubre 2007

Ing. Juan Pablo Luna Felipez

CONTENIDO
I .NET 1.1 Definicin 1.2 .NET Framework 1.3 Caractersticas la tecnologa .Net 1.4 La Librera de Clase Base (BCL) 1.5 Proceso de desarrollo de un programa en .Net 1.6 Instalacin de . Net Framework 2.0 II PROGRAM ACIN ORIENTADA A OBJETOS 2.1 Programacin Orientada a Objetos 2.2 Objeto 2.3 Elementos de un Objeto a) Atributos b) Mtodos c) Eventos 2.4 Propiedades de los Objetos a) Herencia b) Polimorfismo c) Encapsulamiento 2.5 Clase 2.6 Instancia 2.7 Relaciones Entre Clases 2.8 Mensajes III EL LENGUAJE DE PROGRAM ACI N C# 3.1 Definicin 3.2 Caractersticas de C# 3.3 Sintaxis de C# 3.4 Sintaxis de sentencias Simples a) Comentarios b) Declaracin de variables de tipo primitivo c) Bloques d) Asignacin 3.5 Sintaxis de Estructuras Condicionales a) Bifurcacin b) Seleccin Mltiple 3.6 Sintaxis de Estructuras Repetitivas 1 1 1 2 3 4 6 8 8 8 8 8 8 8 9 9 9 9 9 10 10 10 11 11 11 12 13 13 13 14 14 14 14 15 16

a) Ciclo Mientras-Hacer b) Ciclo Repetir-Mientras c) Ciclo Automtico 3.7 Conversin de tipos a) Casting b) Conversin a Texto c) Conversin de Texto a Entero 3.8 Manejo de Arreglos a) Declaracin de Arreglos b) Acceso a los elementos de un Arreglo 3.9 Sintaxis de una Clase a) Uso de NameSpaces b) Definir un NameSpace para la clase Actual c) Estructura de una clase 3.10 Definicin de Mtodos de una clase a) Mtodos Constructores b) Mtodos Procedimiento c) Mtodos funcin d) Argumentos y Parmetros e) Modificadores de acceso a los Mtodos de una Clase 3.11 Modificadores de acceso a los atributos de una Clase 3.12 Declaracin de Propiedades 3.13 Creacin de Instancias a) Declaracin de una instancia b) Construccin de una instancia 3.14 Uso de Mtodos de una instancia 3.15 Manejo de Excepciones 3.16 Salida de Texto por Consola 3.17 El Mtodo main 3.18 Operadores de C# 3.19 Tipo de Datos de C# IV SHARPDEVELOP 4.1 Definicin 4.2 Instalacin de SharpDevelop 4.3 Ingreso a SharpDevelop 4.4 Pantalla de presentacin de SharpDevelop 4.5 La Interfaz Grfica de SharpDevelop 4.6 Componentes de la Interfaz de SharpDevelop a) Barra de Ttulo b) Barra de Mens c) Barra de Herramientas d) Barra de Estado e) Ventana de Exploracin de Proyectos f) Paleta de Herramientas

16 17 17 18 18 18 18 19 19 19 20 20 20 21 22 22 23 24 25 27 28 29 30 30 30 31 31 32 32 33 34 35 35 35 37 38 38 39 39 39 40 40 40 41

g) Ventana de Propiedades h) Ventana de Eventos i) Ventana de Exploracin Clases j) Ventana de Diseo k) Ventana de Cdigo Fuente l) Pagina de Inici 4.6 Componentes de la Ficha Windows Forms 4.7 Componentes de la Ficha de Datos V CONEXIN C# - MySQL 5.1 MySQL 5.2 Etapas en el manejo de Datos en C# 5.3 Realizar la conexin a una base de Datos 5.3.1 Instalacin del Connector / NET 5.3.2 Cargar el ensamblado MySQL.Data 5.3.3 Utilizar el espacio de nombre de MySQL 5.3.4 Realizar la Conexin 5.4 Realizar consultas a la base de Datos 5.5 Mostrar los resultados de las consultas realizadas Ejemplo completo BIBLIOGRAFA

41 42 42 43 43 44 44 50 51 51 51 52 52 56 57 57 59 60 62 63

Capitulo I

.NET
1.1 Definicin

.NET es una nueva Tecnologa, desarrollada por la corporacin Microsoft para la creacin y distribucin de software en forma de servicios, de modo que estos servicios se puedan suministrar remotamente y que tengan la capacidad de comunicarse y combinarse unos con otros independiente de la plataforma, lenguaje de programacin y modelo de componentes con los que hayan sido desarrollados, esta pensada sobre todo para negocios por Internet.

1.2 .NET Framework

.NET Framework es la plataforma, de la tecnologa .NET, contiene un conjunto de herramientas y servicios para el desarrollo de aplicaciones

.NET Framework consta de tres elementos:

El Entorno de Ejecucin Comn (Common Language Runtime): Es la base de .Net FrameWork se ocupa de la gestin del cdigo (carga y ejecucin) y de la manipulacin de la memoria.

La Jerarqua de Clases Bsicas (Framework Base Classes): Contiene un conjunto amplio y slido de clases para realizar aplicaciones, es el API de .Net FrameWork.

El motor de generacin de interfaz de usuario: Permite crear interfaces para las aplicaciones Web o para Windows.

Ing. Juan Pablo Luna Felipez

1.3 Caractersticas de la tecnologa .NET

La tecnologa .Net tiene las siguientes caractersticas:

Integracin de Lenguajes y Cdigo: Al tener la tecnologa .NET un Entorno de Ejecucin comn, cada fraccin de cdigo escrita en un lenguaje .NET, se compila con su respectivo compilador, generando un cdigo intermedio, este cdigo intermedio, es el que ejecutar, por lo que fcilmente se puede integrar porciones de cdigo escritos en diferentes lenguajes en una sola solucin, ya que todos se llevarn al lenguaje Intermedio

Modelo totalmente Orientado a Objetos: En .NET, todo esta formado por clases y objetos, ya que tiene una rica implementacin de la programacin Orientada a Objetos

Sistema Comn de Tipos: La Jerarqua de Clases Bsicas, permite que se tenga un ampli pero nico sistema de tipos de datos, que sern comunes a todos los lenguajes de programacin de la tecnologa .net

Gestin de Memoria (Recolector de Basura): La tecnologa. Net se ocupa de liberar automticamente las porciones de memoria que se utiliz, pero que ya no se usan.

Tratamiento de excepciones: Para un mejor control de errores, la tecnologa .NET, permite controlar bloques de cdigo que podran arrojar excepciones, a travs de la sentencia try catch - finally

Seguridad Avanzada: Al distribuirse software en forma de servicios por Internet, siempre se corre riesgos por intromisin de terceros, por lo que la tecnologa .NET, cuenta con un fuerte sistema de seguridad

Ejecucin Multiplataforma: La tecnologa .NET, esta diseada para ser potable a cualquier sistema operativo, solo basta instalar el .NET Framework respectivo, para correr los archivos ejecutables.

Entorno de Ejecucin Comn: El Common Language Runtime, es el nico encargado de cargar el cdigo en la memoria y ejecutarlo, para todos los lenguajes soportados por la tecnologa .NET.

Ing. Juan Pablo Luna Felipez

1.4 La Librera de Clase Base (BCL)

La Librera de Clase Base (BCL, Base Classes Library) es la librera de .NET Framework y esta formada por varias clases prefabricadas que permiten desarrollar aplicaciones, est escrita en MSIL(Microsoft Intermediate Lenguaje, Lenguaje Intermedio de Microsoft), por lo que puede usarse desde cualquier lenguaje de programacin, cuyo compilador genere MSIL. Esta organizada en espacios de nombres que agrupan las clases con funcionalidades similares. Algunos de los espacios de nombre de mayor utilidad son:

System: Contiene los tipos bsicos, tablas, excepciones, fechas, nmeros aleatorios, recolector de basura, entrada/salida en consola, etc.

System.Collections: Contiene las colecciones de datos de uso comn como pilas, colas, listas, diccionarios, etc.

System.Data: Contiene necesarias las clases para la manipulacin de bases de datos, estos forman la denominada arquitectura ADO.NET.

System.IO: Permiten la manipulacin de archivos y otros flujos de datos. System.Net: Permiten las comunicaciones en red. System.Runtime.Remoting: Permite el acceso a objetos remotos. System.Threading: Permite la manipulacin de hilos. System.Web.UI.WebControls: Permiten la creacin de interfaces de usuario basadas en ventanas para aplicaciones Web.

System.Winforms: Permiten la creacin de interfaces de usuario basadas en ventanas para aplicaciones estndar.

System.XML; Permiten el acceso a datos en formato XML

Ing. Juan Pablo Luna Felipez

1.5 Proceso de desarrollo de un programa en .Net

Para obtener un programa ejecutable desarrollado en la tecnologa .NET, se sigue las siguientes etapas:

a) Escribir el cdigo fuente del programa b) Utilizar ensamblados en el programa c) Compilar el programa d) Obtener el Cdigo ejecutable e) Instalar el programa

a) Escribir el cdigo del programa

La primera etapa para la construccin de un programa con la tecnologa .NET, es la escritura del cdigo fuente, para cuyo propsito se puede elegir cualquiera de los diferentes lenguajes soportados por la plataforma .Net, los lenguajes soportados actualmente por la tecnologa .NET son VB.NET, C#, C++ y J#.

La codificacin del programa no solamente se lo puede rtealizar en un lenguaje de programacin, sino que se puede tener archivos escritos en diferentes lenguajes, tambin se puede instanciar un objeto de una clase escrita en un cierto lenguaje como C#, a una clase escrita en otro lenguaje como VB.Net y utilizarla sin problemas, esto se logra a travs de la Especificacin Comn de Lenguajes o (Common Language Specification) de la tecnologa .NET.

b) Utilizar ensamblados en el programa

Para la escritura del cdigo se pueden utilizar y crear ensamblados. Un ensamblado o assembly, es un conjunto de clases, tipos, recursos, imgenes, etc, reunidos para formar la unidad ms elemental de cdigo que puede ejecutar el entorno de .NET Framework.

Ing. Juan Pablo Luna Felipez

Los ensamblados son bloques de construccin de software, que se ensamblan o unen para crear aplicaciones, un programa puede acceder a informacin o cdigo almacenados en un ensamblado.

c) Compilar el programa

Una vez concluido con la codificacin de los archivos fuente, se realiza el proceso de compilacin. En el proceso de compilacin los cdigos fuente se compilan con el compilador de cada lenguaje utilizado, se tiene un compilador por lenguaje, es decir existe un compilador para VB.NET, otro para C#, otro para C++, etc. Todos estos compiladores convierten el cdigo fuente a un lenguaje intermedio denominado Microsoft Intermediate Languaje (MSIL). El lenguaje intermedio (MSIL), es un conjunto de instrucciones que son independientes del sistema operativo y del procesador, esta compuesto por el

cdigo que se ejecutar y los metadatos, los Metadatos son informacin adicional sobre la aplicacin que utiliza el entorno de ejecucin. Tanto el cdigo Intermedio, como los metadatos, se guardan en un fichero de tipo EXE o DLL.

d) Obtener el Cdigo ejecutable

El cdigo en lenguaje intermedio (MSIL), no es ejecutable, para que sea ejecutable, el cdigo intermedio se convierte a cdigo mquina, utilizando un compilador instantneo o compilador Just -In-Time (JIT compiler).

e) Instalar el programa Para instalar un programa creado con la tecnologa .NET, simplemente se necesita copiar los ficheros .exe de .NET en el directorio deseado y luego ejecutar el archivo, previamente deber instalarse el .NET Framework en el equipo.

Ing. Juan Pablo Luna Felipez

1.6 Instalacin de .Net Framew ork 2.0

La versin mas reciente de Microsoft .NET Framework, es la versin 2.0. Para instalar Microsoft.NET Framework 2.0 siga los siguientes pasos:

a) Ejecute el archivo de instalacin de Microsoft.NET Framework 2.0, se iniciar el asistente de Instalacin de Microsoft.NET Framework 2.0 y aparecer la ventana de programa de instalacin de Microsoft.NET Framework 2.0.

Presione Siguiente.

b) Aparecer la ventana de contrato de licencia para el usuario final.

Lea el contrato, Seleccione Acepto los trminos del contrato de licencia y presione Instalar.

Ing. Juan Pablo Luna Felipez

c) Aparecer la ventana de progreso de instalacin de componentes, espere un momento hasta que concluya la instalacin.

d) Aparecer la Ventana de Instalacin Completada de Microsoft.NET Framework

Presione Finalizar

Ing. Juan Pablo Luna Felipez

Capitulo II P RO GR AMAC IN ORI EN TA DA A OB JET OS


2.1 Programacin Orientada a Objetos

La programacin Orientada a Objeto (POO u OOP, Object Oriented Programming), es un paradigma de programacin (una forma de programar), a partir de una representacin del mundo real, donde los objetos son el elemento central.

La programacin orientada a objetos se basa en la construccin de programas a partir de la programacin de clases y el uso de instancias. Un programa se construye a partir de un conjunto de clases.

2.2 Objeto Es un ente con caractersticas propias que lo distingue de los dems. En la POO es el elemento bsico, una representacin de un objeto real o conceptual. 2.3 Elementos de un Objeto a) Atributos: Son las caractersticas que describen a un objeto. Por ejemplo los atributos del objeto gato son: raza, edad, tamao, peso, color de pelo, color de ojos, etc. b) Mtodos: Son las acciones que es capaz de realizar un objeto. Por ejemplo los mtodos del objeto gato son: saltar, comer, dormir, jugar, etc. c) Eventos: Son las acciones externas que se realiza sobre un objeto. Por ejemplo los eventos del objeto gato pueden ser: alimentarlo, vacunarlo, baarlo, etc.

Ing. Juan Pablo Luna Felipez

2.4 Propiedades de los Objetos En los objetos, se puede distinguir tres propiedades comunes:

a) Herencia: Es el mecanismo por el que a partir de una clase denominada clase padre o superclase, se puede crear u obtener otra clase denominada clase hija o subclase, esta clase hija puede heredar algunos o todos los elementos de su superclase. Tambin se dice que la subclase deriva de la superclase Por ejemplo la subclase seres mamferos deriva de la superclase seres vertebrados.

b) Polimorfismo: Es la propiedad por la que se da un mismo mensaje a diferentes objetos, y estos pueden responder de diferente manera a ese mensaje.

c) Encapsulamiento: Cada objeto es una unidad, que encapsula dentro de si atributos, mtodos y eventos.

2.5 Clase

Es un modelo generalizado de un conjunto de objetos con caractersticas similares, a partir del cual, se puede crear objetos denominados instancias.

Una clase es una especie de molde que representa un tipo de objeto, y a partir de este molde, se pueden construir nuevos objetos llamados instancias

Ing. Juan Pablo Luna Felipez

2.6 Instancia

Una instancia es un objeto, obtenido a partir de una clase, se puede crear varias instancias de una misma clase, las cuales se diferenciarn entre s, por su estado, que se representa por el valor de sus atributos en un determinado tiempo.

2.7 Relaciones Entre Clases

Las clases se pueden relacionar entre s para lograr una mejor comprensin de ellas y as lograr una mejor funcionalidad dentro de un programa.

Las clases se pueden relacionar entre s de tres formas:

a)

Relacin de Herencia: A travs del mecanismo de herencia se puede relacionar las clases formando jerarquas de clases.

b)

Relacin de Composicin: Una clase puede estar construida utilizando otras clases como atributos.

c)

Relacin de Uso: Las clases se relacionan a travs de los mensajes que se envan entre s.

2.8 Mensajes

Los objetos por si solos no tienen mucha funcionalidad, por lo general necesitan comunicarse entre s, los mensajes son el medio por el que se comunican los objetos.

Ing. Juan Pablo Luna Felipez

10

Capitulo III EL LEN GUAJE DE PR OGRAMAC IN C#


3.1 Definicin

Es nuevo lenguaje de Programacin Orientado a Objetos, de propsito general diseado por Microsoft para ser utilizado en la plataforma.NET, por lo que se lo suele denominar lenguaje nativo de .NET como el

C# es un lenguaje de programacin evolucionado, que recupera todas las experiencias de los lenguajes de programacin y que toma las mejores caractersticas de los lenguajes Visual Basic, Java y C++, por lo que se dice es el ms adaptado a las necesidades actuales del programador.

Su creador principal es, Dans Anders Hejlsberg quien es el diseador de Turbo Pascal y Delphi,

C# se emple para construir el 90% de Visual Studio.NET (el restante 10% se construyo en C++), y el 100% de la tecnologa ASP.NET

Actualmente esta sometido a estandarizacin por parte de ECMA.

3.2 Caractersticas de C#

Unidad del sistema de tipos Fuerte implementacin de la POO. Gestin de eventos segura y multipropsito. Tratamiento de excepciones

Ing. Juan Pablo Luna Felipez

11

Gestin automatizada de memoria mediante el Garbage Collector Sintaxis muy similar a Java y C++ Estructuras de control de Objetos (foreach). Cdigo autocontenido. Capacidad de manejo de punteros Sencillez Modernidad Orientacin a componentes Seguridad de tipos Sobrecarga de tipos bsicos Sobrecarga de operadores

3.3 Sintaxis de C#

La sintaxis del lenguaje C# es sencilla y se debe tener en cuenta las siguientes consideraciones:

Distingue entre maysculas y minsculas, por lo que las variables: numero, Numero, NUMERO y nUmEro, son diferentes.

Las clases y los mtodos tienen la primera letra de cada una de sus partes en mayscula, por ejemplo Show(), Button.

Los tipos simples se escriben con todas sus letras en minscula, por ejemplo: int, float, char .

Una sentencia se delimita por un punto y coma (;) Los bloques definen los mbitos de las variables. El mbito indica la vida de una variable, una variable existe dentro de un bloque donde ha sido declarada y nada mas.

Ing. Juan Pablo Luna Felipez

12

3.4 Sintaxis de sentencias Simples

a) Comentarios

Los comentarios sirven para colocar aclaraciones dentro el cdigo, estos pueden ser de una lnea o de varias lneas: para colocar comentarios de una lnea se utiliza doble slash (//) al principio del comentario y para comentarios de varias se emplea un slash y un asterisco (/*) al principio del comentario un asterisco y un slash (*/) al final de los comentarios. // Comentario de una lnea /* Comentarios de varias lneas */ b) Declaracin de variables de tipo primitivo

Para declarar variables de tipos primitivos, simplemente debe colocarse en primer lugar el tipo de la variable y posteriormente la variable, terminado con punto y coma Sintaxis Ejemplo:. TipoDeVariable variable; int contador;

Para declarar varias variables del mismo tipo se coloca el tipo de dato, seguido de las variables separadas de coma y al final se termina con punto y coma: Sintaxis Ejemplo: TipoDeVariable variable1, variable2, ,variableN; float numero1, numero2, resultado;

Tambin se puede declarar e inicializar las variables al mismo tiempo Sintaxis Ejemplo: Ejemplo: TipoDeVariable variable = valor int contador=5; float numero=6.3, numero2=-23.4, resultado=0.0;

Ing. Juan Pablo Luna Felipez

13

c) Bloques de cdigo Los bloques de cdigo son importantes, ya que definen los mbitos de las variables. El mbito indica la existencia de una variable, una variable existe dentro de un bloque donde ha sido declarada y nada mas. Para empezar y terminar un bloque de cdigo se emplean las llaves {}.

Sintaxis

{ Bloque de cdigo }

d) Asignacin

Para realizar todo tipo de asignaciones, se emplea el smbolo igual ( = )

Sintaxis Ejemplo:

variable = valor; contador=6;

3.5 Sintaxis de Estructuras Condicionales

Las estructuras condicionales, permiten elegir una serie acciones de entre un conjunto en base a alguna condicin. Se tiene dos estructuras condicionales: La Bifurcacin y la Seleccin Mltiple

a) Bifurcacin

La bifurcacin elije uno de dos conjuntos de acciones dada una condicin, elije un primer conjunto de acciones si se cumple la condicin (o sea si la condicin es verdadera) o un segundo conjunto de acciones si no cumple la condicin (o sea si la condicin es falsa).

Ing. Juan Pablo Luna Felipez

14

Sintaxis

if(condicin) { ..... } else { ..... }

Ejemplo:

If (contador > 100) { contador=0; } else { contador++; }

b) Seleccin Mltiple

Dado un valor se ejecuta una serie de acciones, que se selecciona de entre un conjunto, dependiendo del valor que toma la variable

Sintaxis

switch(variable) { case constante1:{ ........ }break; case constante2:{ ........ }break; case constanteN:{ ........ }break; default: { ........ } break; }

Ing. Juan Pablo Luna Felipez

15

Ejemplo: switch(contador) { case 10:{ contador+=5; }break; case 20:{ contador+=10; }break; case 60:{ contador+=15; }break; } 3.6 Sintaxis de Estructuras Repetitivas

Las estructuras repetitivas permiten repetir un conjunto de acciones, mientras o hasta satisfacer una determinada condicin.

Se tiene tres tipos de estructuras repetitivas: El ciclo repetitivo Mientras Hacer, el ciclo repetitivo Repetir Mientras y el ciclo automtico Para - Hacer a) Ciclo Mientras-Hacer

Repite un conjunto de acciones, mientras se cumpla una determinada condicin (la evaluacin de la condicin es verdadera), y termina el proceso repetitivo cuando la condicin ya no se satisface (la evaluacin de la condicin es falsa). Sintaxis while(condicion) { ........ } while (contador <100) { contador+=2; }

Ejemplo:

Ing. Juan Pablo Luna Felipez

16

b) Ciclo Repetir-Mientras Repite un conjunto de acciones, mientras se cumpla una determinada condicin (la evaluacin de la condicin es verdadera), y termina el proceso repetitivo cuando la condicin ya no se satisface (la evaluacin de la condicin es falsa).

La diferencia con el ciclo repetitivo Mientras Hacer, es que la condicin se encuentra al final, por lo que primero se realiza el conjunto de acciones y luego se evala la condicin, en el ciclo repetitivo Mientras Hacer primero evala la condicin y luego se realiza el conjunto de acciones. Sintaxis do { ........ } while(condicion);

Ejemplo:

do { contador+=2; } while (contador <100);

c) Ciclo Automtico

En C# existen dos tipos de ciclo automtico el bucle for y el bucle for each.

El bucle for repite un conjunto de acciones un nmero definido de veces, el bucle for each, repite un conjunto de acciones, para todos los elementos de una determinada coleccin Sintaxis for(inicializacin;expresin;incremento) { ........ }

Ing. Juan Pablo Luna Felipez

17

Sintaxis

foreach (tipo identificador in Objeto) { ......... }

Ejemplo:

for(contador=0;contador<100;contador++) { ........ }

3.7 Conversin de tipos

a) Casting: La conversin de tipos se realiza a travs del casting o conversin de tipos: Sintaxis: variable1 = (TipoDeVariableAConvertir)variable2 Ejemplo: resultado=(float)contador;

b) Conversin a Texto: Para convertir un objeto a una cadena de caracteres, se utiliza el mtodo ToString()

Sintaxis: Ejemplo:

string variable1 =variable2.toString(); string cadena=contador. toString();

c) Conversin de Texto a Entero

Para convertir una cadena de caracteres a Entero, se utiliza el mtodo Parse() Sintaxis: Ejemplo: Int Variable1=int.Parse(string); contador = int.Parse(cadena);

Ing. Juan Pablo Luna Felipez

18

3.8 Manejo de Arreglos a) Declaracin de Arreglos

Para crear arrays, se debe escribir primeramente el tipo de dato del array, seguido de corchetes ([]), y luego el nombre de la instancia del array. Sintaxis: Ejemplo: Tipo [] nombreArray; int [] contadores;

Posteriormente se debe construir la instancia con el operador new, seguido del tipo de dato del array y del tamao del array Sintaxis: Ejemplo: nombreArray=new Tipo[Tamao]; contadores = new int[10];

Tambin se lo puede realizar en una sola lnea Sintaxis: Ejemplo: Tipo [] nombreArray=new Tipo[Tamao]; int [] contadores= new int[10];

b) Acceso a los elementos de un Arreglo

Para acceder a los elementos de un arreglo debe escribirse el nombre del arreglo y entre corchetes el ndice del elemento al que se desea acceder, los ndices de los elementos del arreglo empiezan en cero, de modo que el primer elemento se almacena en la posicin del ndice cero, el segundo elemento se almacena en la posicin del ndice uno, y as sucesivamente. Sintaxis: variable = nombreArray[indice]; nombreArray[indice]=valor; Ejemplo: contador= contadores[0]; contadores[5]= contador;

Ing. Juan Pablo Luna Felipez

19

3.9 Sintaxis de una Clase

a) Uso de NameSpaces

using permite usar espacios con Nombre (NameSpace) , que es un nombre bajo el que se agrupan clases relacionadas entre s(una especie de libreras).

Por cada NameSpace a utilizar en una clase se coloca una sentencia con la directiva using y se termina con punto y coma(;). Sintaxis: using NameSpace1; using NameSpace2; ......... using NameSpaceN; Ejemplo: using System; using System.Windows.Forms; using System.Drawing; b) Definir un NameSpace para la clase Actual

No es obligatorio definir una clase dentro de un NameSpace, pero es lo ms recomendable, para ello se sigue la siguiente sintaxis Sintaxis: namespace NombreDeEspacio { Definicin de la clase } Ejemplo: namespace Graficos { }

Ing. Juan Pablo Luna Felipez

20

c) Estructura de una clase Para declarar una clase en C# se debe seguir la siguiente sintaxis:

Sintaxis:

using NameSpace1; using NameSpace2; ......... using NameSpaceN;

namespace NombreDeEspacio { Declaracin de atributos Modificadores class NombreDeClase : ClasePadre { Mtodos Constructores Definicin de propiedades Mtodos de usuario } }

Ejemplo:

using System; using System.Drawing; namespace Graficos { int ancho,alto; public class CRectangulo : CPunto { } }

Ing. Juan Pablo Luna Felipez

21

3.10 Definicin de Mtodos de una clase

a) Mtodos Constructores

El mtodo constructor es el que inicializa los atributos de un nuevo objeto o clase y debe de tener el mismo nombre de la clase. Un objeto puede tener varios mtodos constructores, un mtodo constructor no devuelve ningn tipo de dato

Sintaxis:

NombreClase ([ListaDeParmetrosformales]) { CuerpoDelConstructor }

Ejemplo:

CRectangulo(int a,int t) { ancho=a;. alto=t;. }

Los mtodos constructores llaman siempre antes de la primera lnea al constructor de la superclase.

Tambin se tiene mtodos constructores de clase, los constructores static se utilizan para inicializar una clase y no para crear una instancia. Este se llama automticamente antes de crear la primera instancia y no reciben argumentos,

Sintaxis:

static NombreClase ( ) { CuerpoDelConstructor }

Ejemplo:

static CRectangulo() { contRectangulos=0; }

Ing. Juan Pablo Luna Felipez

22

b) Mtodos Procedimiento

Un mtodo procedimiento, es un mtodo que realiza una labor especfica y que al terminar de ejecutarse no devuelve ningn valor.

Para hacer referencia a que un mtodo no devuelve ningn valor, se dispone de la palabrea reservada void, que hace referencia a nulo, vacio, nada,etc.

Para escribir mtodos procedimiento, primeramente se escribe la palabra reservada void, seguido del nombre del mtodo, entre parntesis los parmetros que requiera el mtodo, y entre llaves el cuerpo del mtodo.

Sintaxis:

void nombreDelMtodo(Parametros) { //Cuerpo del Mtodo }

Ejemplo: void setAncho(int a) { ancho = a; } void setPosicion (int x, int y, int z) { PosX=x; PosY=Y; PosZ=z; }

Ing. Juan Pablo Luna Felipez

23

c) Mtodos funcin

Un mtodo funcin, es un mtodo que realiza una labor especfica y que al terminar de ejecutarse devuelve algn valor.

Para escribir mtodos funcin, primeramente se escribe el tipo de dato que retornar el mtodo funcin, seguido del nombre del mtodo, entre parntesis los parmetros que requiera el mtodo, entre llaves el cuerpo del mtodo y al final del cuerpo del mtodo debe ir el valor de retorno del mtodo funcin, el cual se devuelve con la palabra reservada return.

Sintaxis:

TipoDeDato nombreDelMtodo(Parametros) { //Cuerpo del Mtodo return(valorDeDevolucin); }

Ejemplo:

int getAncho() { return(ancho); }

int numeroDeDigitosDeUnNumero (long n) { int c=1; while (n>9) { c++; n=n/10; } return (c); }

Ing. Juan Pablo Luna Felipez

24

d) Argumentos y Parmetros

Un Parmetro es una variable que recibe un mtodo, el cual lo utiliza para realizar su tarea especfica, por ejemplo en el mtodo numeroDeDigitosDeUnNumero, su parmetro es n, y es el nmero del cual se desea obtener el nmero de dgitos.

Un argumento es un valor especfico que se pasa a un mtodo, y el parmetro del mtodo toma ese valor, lo utiliza y en base a l realiza su tarea especifica.

Por tanto los parmetros estn presentes en la definicin del mtodo, son variables, y los argumentos estn presentes en el uso del mtodo, son valores.

Parmetro: Argumento:

int numeroDeDigitosDeUnNumero (long n) numeroDeDigitosDeUnNumero(5)

En C# existen dos tipos de argumentos de un mtodo:

- Argumentos por Referencia - Argumentos por Valor

a) Argumentos por Referencia

Cuando se pasan argumentos por referencia, se pasa una referencia de la variable original que contiene el valor que se pasa como argumento, por lo que la variable original ser cambiada.

Para especificar que un argumento se pasa por referencia, se debe colocar la palabra reservada ref antes del parmetro, su sintaxis es:

Ing. Juan Pablo Luna Felipez

25

Sintaxis

void nombreDelMtodo(ref Tipo argumento) { //Cuerpo del Mtodo }

Ejemplo:

void setAncho(ref int a) { ancho=a; }

b) Argumentos por Valor

Cuando se pasan argumentos por referencia, se pasa una copia del valor de la variable original que se pasa como argumento, por lo que el valor de la variable original no ser cambiado.

Para especificar que un argumento se pasa por valor, no se coloca ninguna palabra reservada antes del parmetro, su sintaxis es:

Sintaxis

void nombreDelMtodo(Tipo argumento) { //Cuerpo del Mtodo }

Ejemplo:

void setAncho(int a) { ancho=a; }

Ing. Juan Pablo Luna Felipez

26

e) Modificadores de acceso a los Mtodos de una Clase

Los modificadores de acceso a mtodos, definen el acceso que se podr tener a un mtodo, esto permite tener una mejor funcionalidad de los mtodos de una clase, los mtodos admiten los modificadores: public, protected, internal, private, static, virtual, sealed, override y abstract.

public: El mtodo se puede llamar desde cualquier clase internal: El mtodo slo se puede llamar desde cualquier clase que pertenezca al namespace de la clase propietaria del mtodo

private: El mtodo solo se puede llamar desde la clase propietaria del mtodo

Static: El mtodo pertenece a la clase en lugar de a un objeto. Virtual: La implementacin del mtodo puede ser reemplazada (override) en una clase derivada.

Override: Permite reimplementar un mtodo virtual heredado de una superclase.

Abstract: El mtodo es un miembro de una clase abstracta. Sealed: Indica que una clase no se puede heredar, solo se puede instanciar.

Para colocar un modificador de acceso a un mtodo, se debe colocar el modificador al principio de la definicin del mtodo

Ejemplo: //Mtodo que devuelve el factorial de un nmero public long CalcularFactorial(int numero) { long f=1; for(int i=1;i<=numero;i++) f=f*i; return(f); }

Ing. Juan Pablo Luna Felipez

27

3.11 Modificadores de acceso a los atributos de una Clase

Los modificadores de acceso a los atributos, definen el acceso que se podr tener a un atributo, esto permite tener una mejor funcionalidad de los atributos de una clase, entre los modificadores de atributo tenemos:

public: El atributo se puede usar en cualquier clase protected: El atributo se puede usar solo en la clase propietaria o en sus descendientes

internal: El atributo slo se puede usar desde cualquier clase que pertenezca al namespace de la clase propietaria del atributo

protected internal: El atributo slo se puede utilizar desde cualquier clase que pertenezca al namespace de la clase propietaria del atributo o en las clases derivadas de la clase propietaria.

private: El atributo solo se puede usar en la clase propietaria. Static: El atributo pertenece a toda la clase en lugar de a un objeto.

Para colocar un modificador de acceso a un atributo, en la declaracin de los atributos, se debe colocar el modificador al principio de la declaracin del atributo.

Ejemplo: internal int posX, posy;; public float distancia; protected char tipo=x;

Ing. Juan Pablo Luna Felipez

28

3.12 Declaracin de Propiedades

C# esta diseado con una orientacin a componentes, permite declarar propiedades de objetos de forma sencilla en el lenguaje.

Para declarar propiedades en una clase, se utiliza las palabras reservadas get y set, La palabra reservada get permite devolver el valor de la propiedad empleando return, y set establece el valor de la propiedad, para lo que se utiliza la palabra reservada value, su sintaxis es:

Sintaxis:

public TipoDeDato NombrePropiedad { get { return (NombrePropiedad); } set{ NombrePropiedad=value; } }

Ejemplo:

public int ancho { get { return (ancho); } set{ ancho=value; } }

Ing. Juan Pablo Luna Felipez

29

3.13 Creacin de Instancias

Una instancia es un objeto, obtenido a partir de una clase, se puede crear varias instancias de una misma clase, las cuales se diferenciarn entre s, por su estado, que se representa por el valor de sus atributos en un determinado tiempo.

Para obtener una instancia, se sigue dos procesos: declarar la instancia y construir la instancia.

a) Declaracin de una instancia

Para declarar una instancia, se coloca primeramente la clase a la que pertenece la instancia. Y a continuacin el nombre de la instancia.

Sintaxis: Ejemplo:

NombreClase NombreInstancia; CRectangulo = rectangulo;

b) Construccin de una instancia

Para construir una instancia, se coloca primeramente el nombre de la instancia, seguido del operador igual(=), el operador new, el nombre de clase a la que pertenece y los argumentos del constructor de la clase

Sintaxis: Ejemplo:

NombreInstancia = new NombreClase(ArgumentosDelConstructor); rectangulo =new CRectangulo();

Ambos procesos de declarar y construir una instancia, se pueden realizar en una sola lnea de cdigo:
Sintaxis: NombreClase NombreInstancia=new NombreClase(ArgumentosDelConstructor);

Ejemplo:

CRectangulo rectangulo =new CRectangulo();

Ing. Juan Pablo Luna Felipez

30

3.14 Uso de Mtodos de una instancia

Para utilizar los mtodos de una instancia, basta con escribir la instancia, seguido de un punto, el nombre del mtodo y los argumentos respectivos Sintaxis: Ejemplo: nombreDeLaInstancia nombreDelMetodo(argumentos); rectangulo.setAncho(5);

3.15 Manejo de Excepciones C#, integra en el lenguaje la gestin de errores, permite controlar bloques de cdigo que podran arrojar excepciones, a travs de la sentencia try catch - finally Sintaxis: try { ...... }catch(SubClaseTrowable1 nombreVariable) { ...... }catch(SubClaseTrowable2 nombreVariable) { ...... } finally { ..... }

Ejemplo:

try { contadores[10]=20; }catch(Exception e) { System.Console.Writeln("error al manejar vector"); }

Ing. Juan Pablo Luna Felipez

31

3.16 Salida de Texto por Consola

La consola suele ser muy til para describir comportamientos internos de un programa, su sintaxis es:

Sintaxis: Ejemplo:

System.Console.WriteLine(mensaje); System.Console.Writeln("error al manejar vector");

3.17 El Mtodo main

El mtodo main es un mtodo especial, es el mtodo principal que se ejecuta al iniciar un programa C#, por lo tanto solo debe estar presente una sola vez en un programa.

Sintaxis:

public static void Main(string [] args ) { //Cuerpo del Mtodo main }

Ejemplo:

public static void Main(string [] args ) { CRectangulo rectangulo; rectangulo = new CRectangulo(); rectangulo.setAncho(5); }

Ing. Juan Pablo Luna Felipez

32

3.18 Operadores de C#

Un operador es un smbolo que indica que debe realizarse una operacin sobre uno o ms argumentos, que reciben el nombre de operandos. Los operadores que se tiene en C# en orden de prioridad de arriba abajo y de izquierda a derecha son:

Primarios (x), x.y, f(x), a[x], x++, x--, new, typeof, sizeof, checked, unchecked Unarios +, -, !, ~, ++x, --x, (T)x Multiplicativos *, /, % Aditivos +, De desplazamiento <<, >> Relacionales <, >, <=, >=, is Igualdad = = AND Lgico & XOR Lgico ^ OR Lgico | AND Condicional && OR Condicional || Condicional ?: Asignacin =, *=, /=, %=, +=, -=, <<=, >>=, &=, ^=, |=

-Todos los operadores, menos el de asignacin, se evalan de izquierda a derecha. - El operador (. ) se utiliza para especificar un miembro de una clase. - El operador ([]) se utiliza para hacer referencia a los elementos de un arreglo. - Los operadores ++ y -- son operadores autoincremento y autodecremento. - new es un operador para construir instancias - typeof es un operador utilizado para obtener el tipo de dato de una variable. - sizeof es un operador utilizado para obtener el tamao en bytes de un tipo de dato o una variable. - Se puede realizar una asignacin compuesta para simplificar expresiones. Por ejemplo, x = x + 2 es equivalente a x += 2.

Ing. Juan Pablo Luna Felipez

33

3.19 Tipo de Datos de C# C# tiene un amplio conjunto de tipos de datos, para valores numricos, cadenas de texto, valores bolanos, y para objetos, los cuales son:
Tamao Bits 8 8 16

Tipo SByte Byte Int16

Descripcin Bytes con signo Bytes sin signo Enteros cortos con signo Enteros cortos sin signo Enteros con signo Enteros sin signo Enteros largos con signo

Rango de valores -128 127 0 255 [-32.768, 32.767] [0, 65.535]

Alias sbyte byte short ushort

UInt16 16 Int32 32

[-2.147.483.648,2.147.483.647] int [0, 4.294.967.295] [-9.223.372.036.854.775.808, 9.223.372.036.854.775.807] uint long

UInt32 32 Int64 64

UInt64 64 Single 32

Enteros largos sin signo Reales con 7 dgitos de precisin

[0-18.446.744.073.709.551.615] ulong [1,510-45 - 3,41038]


-28 28

float double decimal bool char string object

Double 64 Decimal 128 Boolean 32 Char 16

Reales de 15-16 dgitos de precisin [5,010-324 - 1,710308] Reales de 28-29 dgitos de precisin [1,010 Valores lgicos Caracteres Unicode - 7,910 ]

true, false [\u0000, \uFFFF] El permitido por la memoria Cualquier objeto

String Variable Cadenas de caracteres Object Variable Cualquier objeto

Ing. Juan Pablo Luna Felipez

34

Capitulo IV SHARP DEVELOP


4.1 Definicin

SharpDevelop es un entorno de desarrollo Integrado (IDE), para desarrollar programas en plataforma .NET y el proyecto Mono. Desarrollado por la comunidad icsharpcode.net, esta liberada bajo la licencia general publica GNU (Lesser General Public License)

SharpDevelop es muy potente, fcil de usar, ocupa poca memoria y su instalador es pequeo comparado al instalador de Microsoft VisualStudio.NET, para su instalacin, requiere que se tenga instalado Microsoft.NET Framework 2.0

4.2 Instalacin de SharpDevelop

a)

Para

instalar

SharpDevelop,

descargue

el

instalador,

del

sitio

www.sharpdevelop.net/OpenSource/SD/Download/ b) Ejecute el instalador de SharpDevelop 2.2, se iniciara el asistente de instalacin el cual le guiar a travs de la instalacin y aparecer la ventana de bienvenida a SharpDevelop 2.2

Presione Next(Siguiente)

Ing. Juan Pablo Luna Felipez

35

c) Aparecer la Ventana de acuerdo de licencia de SharpDevelop, mostrando la licencia GNU Lesser General Public License

Lea la Licencia y Presione IAgree (yo acepto) d) Aparecer la Ventana de seleccin de la carpeta de instalacin. Elija la carpeta donde va instalar SharpDevelop.

Presione Install (Instalar) e) Comenzar la instalacin de SharpDevelop y aparecer la ventana de instalacin, mostrando el progreso, espere hasta que finalice

Ing. Juan Pablo Luna Felipez

36

f) Aparecer la Ventana de finalizacin de la instalacin, que indica que la instalacin de SharpDevelop se ha completado, y le da la opcin de arrancar SharpDevelop

Presione Finsh(finalizar)

4.3 Ingreso a SharpDevelop

Una vez Instalado SharpDevelop, para ingresar vaya a :

Inicio ->Todos los Programas ->SharpDevelop 2.0 -> SharpDevelop 2.0

O ejecute el archivo:

C:\Archivos de programa\SharpDevelop\2.0\bin\ SharpDevelop.exe

Ing. Juan Pablo Luna Felipez

37

4.4 Pantalla de presentacin de SharpDevelop

Al iniciar SharpDevelop, mostrar la pantalla de presentacin, que tiene el siguiente aspecto:

4.5 La Interfaz Grfica de SharpDevelop

Una vez ingresado a SharpDevelop, se podr ver la interfaz grfica, que es sencilla y presenta el siguiente aspecto:

Ing. Juan Pablo Luna Felipez

38

4.6 Componentes de la Interfaz de SharpDevelop

La Interfaz grfica de SharDevelop, y esta compuesta por las siguientes partes:

a) Barra de Ttulo b) Barra de Mens c) Barra de Herramientas d) Barra de Estado e) Ventana de Exploracin de Proyectos f) Paleta de Herramientas g) Ventana de Propiedades h) Ventana de Eventos i) Ventana de Exploracin Clases j) Ventana de Diseo k) Ventana de Cdigo Fuente l) Pagina de Inici

a) Barra de Ttulo

La barra de ttulo identifica el proyecto actual con el que se trabaja y presenta el siguiente aspecto:

b) Barra de Mens

La barra de Mens contiene varios mens, los que tienen todos los comandos para trabajar con el entorno de SharpDevelop, presenta el siguiente aspecto:

Ing. Juan Pablo Luna Felipez

39

c) Barra de Herramientas

La barra de herramientas, permite el acceso rpido a los comandos ms frecuentemente utilizados, presenta el siguiente aspecto:

d) Barra de Estado

La barra de estado, muestra informacin general, acerca de las acciones que se va ejecutando, las selecciones, la posicin de elementos, ubicacin del cdigo, etc.

e) Ventana de Exploracin de Proyectos

La ventana de Exploracin de proyectos, permite visualizar la estructura de la aplicacin actual, y la navegacin a travs de las soluciones, proyectos, archivos, formularios, recursos y referencias.

Ing. Juan Pablo Luna Felipez

40

f) Paleta de Herramientas La Paleta de herramientas, contiene varias fichas que permiten insertar elementos a los diseo de formularios, pginas Web, e incluso porciones de cdigo . La Ficha Windows Forms contiene los objetos que se pueden utilizar, para el diseo de la Interfaz grafica de usuario de la aplicacin (Etiquetas, botones, etc.).

g) Ventana de Propiedades La Ventana de propiedades permite modificar las propiedades del Objeto seleccionado, entre alguna de las propiedades tenemos: color de Fondo, color de letra, tipo de letra, etc.

Ing. Juan Pablo Luna Felipez

41

h) Ventana de Eventos

La Ventana de eventos permite acceder a los diversos eventos que soporta un objeto, entre algunos de los eventos tenemos: Click, Paint, KeyPress, etc.

i) Ventana de Exploracin Clases

La Ventana de Exploracin Clases, muestra la estructura de clases con la que estamos trabajando, en el archivo actual, permitiendo navegar a travs de las diferentes clases, sus atributos, sus mtodos, sus eventos, etc.

Ing. Juan Pablo Luna Felipez

42

j) Ventana de Diseo La ventana de diseo, se encuentra en el rea de trabajo y permite trabajar con el diseo de la interfaz grfica de usuario a travs de formularios, pudiendo trabajar con un solo formulario a la vez.

k) Ventana de Cdigo Fuente La Ventana de Cdigo Fuente, se encuentra en el rea de trabajo y es una herramienta, muy potente para la edicin de cdigo, teniendo funcionalidades como la autocompletacin de cdigo.

Tanto la Ventana de Diseo y la Ventana de edicin de cdigo se encuentran en el rea central de la interfaz, en el rea de trabajo y se pueden alternar entre ambos, pudiendo estar visible solamente uno de ellos

Ing. Juan Pablo Luna Felipez

43

l) Pagina de Inici

La pgina de inicio se muestra cuando se ingresa a SharDevelop, muestra los proyectos recientemente abiertos, y permite abrirlos, as como crear una nueva solucin.

4.7 Componentes de la Ficha Windows Forms

La ficha Windows Forms de la Paleta de Herramientas, contiene todos los componentes del namespace Windows.Forms, y que permiten la creacin de la interfaz grfica de usuario para una aplicacin Windows, estos componentes son los siguientes:

El pointer (Puntero): Deshabilita la seleccin de cualquier componente, devolvindole el control al puntero.

El Button (Botn): Es un componente que permite ejecutar una accin al usuario

El CheckBox (Caja de Seleccin): permite activar o desactivar una determinada opcin

Ing. Juan Pablo Luna Felipez

44

El ComboBox (Lista Desplegable): Permite desplegar una lista de elementos para seleccionar uno de ellos.

El Label (etiqueta): Es un control de Windows que representa una etiqueta estndar, un texto fijo.

El RadioButton: Es un control de Windows que permite seleccionar o deseleccionar una opcin, pero entre un conjunto de estas opciones, solo podr estar seleccionado nicamente una opcin.

El TextBox (Caja de texto): Es un control de Windows que permite ingresar informacin en forma de texto

CheckedListBox (Lista de Seleccion): Es un control de Windows que representa una Lista con varias opciones de seleccin mltiple

El DateTimePicker (Seleccin de Tiempo y Fecha): Es un control de Windows que permite al usuario seleccionar una fecha y un tiempo en un formato especificado.

El DomainUpDown: Es un control de Windows que permite seleccionar elementos de texto de una lista navegando a travs de ellos.

El FlowLayoutPanel: Es un control de Windows que representa un tablero que dinmicamente pone sus

componentes en un formato horizontal o vertical.

Ing. Juan Pablo Luna Felipez

45

El GroupBox (Caja de agrupacin): Es un control de Windows que permite agrupar un conjunto de objetos, en un marco y con un subttulo optativo.

El HScrollBar(Barra de desplazamiento Horizontal): Es un control de Windows que representa una barra de

desplazamiento horizontal.

El LinkLabel (Etiqueta de Hipervnculo): Es un control de Windows que representa una etiqueta de hipervnculo y permite desplegar hipervnculos.

El ListBox (Cuadro de Lista): Es un control de Windows que muestra una lista de elementos, del que se puede realizar una seleccionn simple o mltiple.

El ListView (Vista de elementos): Es un control de Windows que representa una lista de elementos que pueden desplegarse usando cuatro vistas diferentes, en la que se puede realizar seleccin simple o mltiple.

El MaskedTextBox (Caja de Texto con Mascara) Es un control de Windows que permite ingresar informacin en forma de texto, utilizando una mscara para evitar la visibilidad de lo que se ingresa, es til para contraseas.

El MonthCalendar (Calendario Mensual): Es un control de Windows que permite al usuario la seleccin de una fecha usando un despliegue visual de un calendario mensual.

Ing. Juan Pablo Luna Felipez

46

El NumericUpDown: Es un control de Windows que permite seleccionar elementos numricos de una lista navegando a travs de ellos.

El Panel: Es un control de Windows que permite agrupar otros objetos dentro de l.

El PictureBox (Cuadro de Imagen): Es un control de Windows, que permite insertar imgenes o dibujar grficos.

ProgressBar (Barra de Progreso): Es un control de Windows, que permite mostrar un indicador de progreso mientras se ejecuta una tarea

RichTextBox(Caja de texto enriquecido): Es un control de Windows que permite insertar texto enriquecido con formatos, imgenes, etc.

SplitContainer (Contenedor de Divisin): Es un control de Windows que agrupa componentes y permite la redimensin de su rea de visualizacin

TabControl (Control de Tabulacin): Es un control de Windows que permite agrupar los componentes en paneles diferentes que se acceden a travs de pestaas

ToolTip (Herramienta de Informacin): Es un control de Windows que permite colocar etiquetas de explicacin a los diferentes componentes

Ing. Juan Pablo Luna Felipez

47

TreeView (Vista en rbol): Es un control de Windows, que permite mostrar informacin en forma jerrquica, con un rbol con nodos

El VScrollBar (Barra de Desplazamiento Vertical): Es un control de Windows que representa una barra de

desplazamiento Vertical.

MenuStrip (Men Contextual): Es un control de Windows que permite colocar mens desplegables

ToolStrip (Barra de Herramienta): Es un control de Windows que permite colocar barras de herramientas a un formulario

ColorDialog (Dilogo de Color): Es un control de Windows que permite mostrar un dialogo para seleccionar Colores, es un componente No Visual.

FolderBrowserDialog (Dialogo de navegacin de carpetas): Es un control de Windows que permite mostrar un dialogo para navegar y seleccionar carpetas, es un componente No Visual

FontDialog (Dialogo de Fuente): Es un control de Windows que permite mostrar un dialogo para Fuentes de letras, es un componente No Visual

ImageList (Lista de Imgenes): Es un control de Windows que permite cargar un conjunto de imgenes para trabajar con elementos como los mens o las barras de herramientas, es un componente No Visual
Ing. Juan Pablo Luna Felipez

48

OpenFileDialog (Dialogo para abrir archivos): Es un control de Windows que muestra un dialogo para abrir archivos, es un componente No Visual

PageSetupDialog

(Dialogo

de

configuracin

de

Pginas): Es un control de Windows que muestra un dialogo para configurar pginas, es un componente No Visual

PrintDialog (Dilogo de Impresin): Es un control de Windows que muestra un dialogo para realizar impresin de documentos, es un componente No Visual

PrintPreviewControl (Componente de Vista Previa): Es un control de Windows que permite crear vistas previas de un documento.

PrintPreviewDialog (Dilogo de Impresin previa): Es un control de Windows que muestra un dialogo para configurar la vista previa de un documento, es un componente No Visual

SaveFileDialog (Dialogo para Grabar Archivos): Es un control de Windows que muestra un dialogo para grabar archivos, es un componente No Visual

Timer (Temporizador): Es un control de Windows que permite manejar seales de reloj, a travs de las cuales en ciertos intervalos de tiempo, se puede realizar acciones, es un componente No Visual

Ing. Juan Pablo Luna Felipez

49

4.7 Componentes de la Ficha de Datos

Los componentes de la Ficha de Datos, permiten acceder a base de datos a travs de la tecnologa ADO.net, y manipular los datos de las diferentes tablas, algunos de estos componentes son:

BindingNavigator: Permite navegar por los datos de un origen de datos

BindingSource: Unin de Origen:

DataNavigator: Permite navegar a travs de los Datos

DataGrid: Despliega y permite manipular los datos en una cuadricula de datos

DataGridView: Despliega y permite manipular una vista de los datos en una cuadricula de datos

Re

DataSet: Es el encargado de recuperar los datos en forma de Tabla, de un origen de datos

OdbcDataAdapter: Permite enlazar los datos de una base de datos a travs de una conexin ODBC

OdbcCommand: Permite acceder a los datos que se halla en un origen de datos a travs de consultas SQL

OdbcConnection: Permite realizar una conexin a una base de datos a travs de un origen de datos ODBC

Ing. Juan Pablo Luna Felipez

50

Capitulo V CONEXIN C# - MySQL


5.1 MySQL Es un sistema Administrador de Base de Datos relacional (RDMBS), muy rpido, seguro, estable y fcil de usar, fue desarrollado para manejar grandes bases de datos de forma ms veloz que las soluciones existentes. MySQL es una poderosa herramienta para el acceso a bases de datos en Internet, desarrollado por la compaa MySQL AB. MySql es un software Open Source, lo que posibilita que cualquier persona pueda descargarlo gratuitamente de Internet y utilizarlo sin costo alguno, tambin se puede acceder al cdigo y modificarlo, ya que se distribuye bajo la licencia GPL (General Public License). Tambin si uno desea puede adquirir una licencia comercial de MySQL para desarrollar aplicaciones comerciales.

5.2 Etapas en el manejo de Datos en C#

Para manipular los datos de una base de datos en el lenguaje C#, se deben realizar las siguientes tareas:

a) Realizar la conexin a una base de Datos b) Realizar consultas a la base de Datos c) Mostrar los resultados de las consultas realizadas

Ing. Juan Pablo Luna Felipez

51

5.3 Realizar la conexin a una base de Datos

Para realizar la conexin a una base de Datos de MySQL desde C#, se deben seguir las siguientes etapas:

a) Instalar el Connector / NET b) Cargar el ensamblado MySQL.Data c) Utilizar el espacio de nombre de MySQL d) Realizar la Conexin

5.3.1 Instalacin del Connector / NET

El controlador Connector / NET provee conexin a MySQL, para aplicaciones cliente escritas en el Lenguaje C#; El Connector / NET es un completo manejador de ADO.NET y esta escrito totalmente en C#.

El Connector / NET, incluye:

Soporte para las caractersticas de MySQL 5.0 y 4.1 Soporte para envi y recepcin de de datos hasta 2 GigaBytes Protocolo de compresin de datos, para el envi de datos en forma comprimida entre el cliente y el servidor Soporte para la conexin TPC/IP en Windows, Linux y Unix Soporte para el Framework del proyecto Mono Administracin total de MySQL, sin el uso de las librerias de MySQL Cliente

El Connector / NET, se puede descargar gratuitamente del sitio Web http://dev.mysql.com/downloads/.

Ing. Juan Pablo Luna Felipez

52

Una vez descargado el archivo mysql-connector-net-5.0.3.zip, siga los siguientes pasos para la instalacin:

a) Descomprima y ejecute el archivo instalador MySql.Data.msi, b) Aparecer la ventana de Bienvenida al asistente de instalacin, el cual le guiar a travs de la instalacin del MySQL Connector / NET

Presione Next (Siguiente)

c) Aparecer la ventana de Acuerdo de Licencia, el cual le mostrar la licencia GNU General Public License(Licencia Publica General)

Seleccione I accept the terms in the license Agreement (Yo acept los trminos en el acuerdo de licencia) y Presione Next (Siguiente)

Ing. Juan Pablo Luna Felipez

53

d) Aparecer la Ventana de Seleccin del tipo de Instalacin, el cual tiene las siguientes opciones:

- Tipycal (tpico): La instalacin tpica, instala las caractersticas mas comunes del controlador MySQL Connector / NET. - Complete (Completo): Instala todos los componentes que vienen en el paquete de instalacin del MySQL Connector / NET. - Custom (Personalizado): Permite la eleccin de los componentes a instalar.

Presione Tipycal (tpico)

e) Aparecer la ventana de seleccin de opciones finales, el cual le da la posibilidad de seleccionar las siguientes opciones:

Register Connector / NET in the Global Asembly Cache: Registrar el Connector / NET en el cache global de ensamblados de .NET

Create Start Menu tems: Crear los tems para el men inicio

Ing. Juan Pablo Luna Felipez

54

Seleccione Register Connector / NET in the Global Asembly Cache y Presione Next (Siguiente)

d) Aparecer la Ventana Preparado para instalar el programa, la cual le informa que el asistente se encuentra listo para ejecutar la instalacin del Connector / Net.

Presione Install (Instalar) e) Comenzar la instalacin del MySQL Connector / NET, aparecer la ventana de indicacin del progreso de la instalacin, espere hasta que finalic

Ing. Juan Pablo Luna Felipez

55

f) Aparecer la Ventana de finalizacin del asistente de instalacin de MySQL Connector / NET, el cual le informa que termin con la instalacin.

Presione Finish(Teminar)

5.3.2 Cargar el ensamblado MySQL.Data

Una vez instalado el Connector /J, para comenzar a utilizar la conexin a MySQL desde C#, se debe agregar la referencia al ensamblado MySQL.Data, para ello en SharpDevelop, en el explorador de proyectos, vaya a referencias y elija agregar referencias

Aparecer el dialogo para insertar ensamblados, el cual le permite agregar diferentes ensamblados registrados en el cache de ensamblados global o cargarlos desde algn archivo o proyecto.

Ing. Juan Pablo Luna Felipez

56

Seleccin MySQL.Data y presione OK (Aceptar)

En el explorador de proyectos aparecer la nueva referencia a MySQL.Data

5.3.3 Utilizar el espacio de nombre de MySQL

Una vez cargado el ensamblado MySQL.Data, al inicio del archivo que se desee realizar la conexin a una base de Datos de MySQL, se debe hacer referencia el espacio de nombre MySql.Data.MySqlClient de la siguiente forma:

using MySql.Data.MySqlClient;

5.3.4 Realizar la Conexin

Una vez Instalado el Connector / NET, hecha la referencia el ensamblado MySQL.Data y utilizado el espacio de nombre MySql.Data.MySqlClient, solo resta

Ing. Juan Pablo Luna Felipez

57

realizar la conexin, para lo cual se debe declarar una instancia de la clase MySQLConnection MySqlConnection miConexion;

Luego se debe construir la instancia, con el constructor de la clase MySQLConnection, al cual debe pasarse como argumentos:

Database: La base de datos a la que se desea conectarse Data Source: El equipo donde reside la base de Datos User Id: El usuario que acceder a la base de Datos. Password: La contrasea del usuario

Luego se abre la conexin utilizando el mtodo Open() de la clase MySQLConnection


miConexion.Open();

Se debe controlar la posibilidad de que ocurra un error con el bloque try - catch. El cdigo para la conexin quedara de la siguiente manera:
try { miConexion =new MySqlConnection("Database=itsia;Data Source=localhost;User Id=root;Password=jjjppp"); miConexion.Open(); System.Windows.Forms.MessageBox.Show("Conexin realizada correctamente"); } catch(Exception) { System.Windows.Forms.MessageBox.Show("Error al realizar la conexin"); }

Luego de utilizar la instancia de la clase MySqlConnection debe ser cerrada con el mtodo Close;
miConexion.Close(); Ing. Juan Pablo Luna Felipez

58

5.4 Realizar consultas a la base de Datos

Para realizar consultas SQL, de C# a una base de datos de MySQL, se deben seguir los siguientes pasos:

a) Realizar la conexin a la base de datos

Segn el procedimiento explicado en el punto anterior

b) Declarar una instancia de la clase MySQLCommand:

MySqlCommand miConsulta;

c) Crear la instancia con el constructor de la clase MySQLCommand, pasndole como argumento una instruccin SQL
miConsulta = new MySqlCommand("insert into talumno(nombre) values ('Jose')");

d) Asignar a la instancia de la clase MySQLCommand, la instancia de la clase MySQLConnection sobre la que actuar. miConsulta.Connection=miConexion;

e) Ejecutar la sentencia SQL, para ello se dispone de dos mtodos:

ExecuteNonQuery: Ejecuta sentencias SQL y devuelve el nmero de filas afectadas.

ExecuteScalar: Recupera un valor simple de una base de datos ExecuteReader: Ejecuta consultas SQL y devuelve las filas de la consulta en un objeto de la clase MySQLDataReader

Ing. Juan Pablo Luna Felipez

59

f) Se debe controlar la posibilidad de que ocurra un error con el bloque try - catch. El cdigo para la crear una consulta quedara de la siguiente manera:
MySqlCommand miConsulta; try { miConsulta= new MySqlCommand("insert into talumno(nombre) values ('Pepe')"); miConsulta.Connection=miConexion; miConsulta.ExecuteNonQuery(); System.Windows.Forms.MessageBox.Show("Consulta realizada correctamente"); } catch(Exception) { System.Windows.Forms.MessageBox.Show("Error al realizar la consulta"); }

5.5 Mostrar los resultados de las consultas realizadas

Para manipular los datos que se obtienen de una consulta de seleccin, se debe seguir los siguientes pasos:

a) Declarar una instancia de la clase MySQLDataReader b) Construir la instancia de la clase MySQLDataReader c) Recuperar los datos d) Controlar posibles errores

a) Declarar una instancia de la clase MySQLDataReader

Primeramente se debe declarar una instancia de la clase MySqlDataReader MySqlDataReader misDatos;

Ing. Juan Pablo Luna Felipez

60

b) Construir la instancia de la clase MySQLDataReader

Se debe construir la instancia de la clase MySqlDataReader a partir del mtodo ExecuteReader de la clase MySQLCommand. misDatos = miConsulta.ExecuteReader(); c) Recuperar los datos

Una vez realizada la consulta, los datos obtenidos de esta, se almacenan en la instancia de la clase MySqlDataReader, para acceder a ellos, se debe primeramente llamar al mtodo Read de la clase MySqlDataReader, el cual posiciona el cursor en la primera fila, y avanza fila por fila, hasta llegar al ltimo registro, cuando llega al ultimo registro devuelve el valor 0,

Una vez realizada una operacin de lectura con el mtodo Read de la clase MySqlDataReader, se puede acceder a los datos de las columnas recuperadas utilizando los mtodos GetXXX, (donde XXX representa un tipo de dato), de la clase MySQLDataReader.

Los mtodos GetXXX reciben como argumento un nmero entero que representa el nmero de la columna a la que se desea acceder, la primera columna obtenida de un consulta empieza siempre en cero, la segunda en uno, etc.
System.Windows.Forms.MessageBox.Show(misDatos.GetString(1));

Luego de utilizar la instancia de la clase MySQLDataReader debe ser cerrada con el mtodo Close();

misDatos.Close();

Ing. Juan Pablo Luna Felipez

61

d) Control de errores

Se debe controlar la posibilidad de que ocurra un error con el bloque try - catch El cdigo completo para recuperar los datos quedara de la siguiente manera: MySqlDataReader misDatos; misDatos = miConsulta.ExecuteReader(); try { while(misDatos.Read()) {
System.Windows.Forms.MessageBox.Show(misDatos.GetString(1));

} } Catch(Exception) { misDatos.Close(); miConexion.Close(); }

Ejemplo completo

El cdigo complete para la conexin y acceso a los datos de una base de datos serie el siguiente
using System; using MySql.Data.MySqlClient; public class MiClase { public static void Main(string[] args) { MySqlConnection miConexion=null; try { miConexion =new MySqlConnection("Database=itsia;Data Source=localhost;User Id=root;Password=jjjppp"); miConexion.Open(); System.Windows.Forms.MessageBox.Show("Conexin realizada correctamente"); Ing. Juan Pablo Luna Felipez

62

} catch(Exception) { System.Windows.Forms.MessageBox.Show("Error al realizar la conexin"); } MySqlCommand miConsulta; MySqlDataReader misDatos=null; try { miConsulta= new MySqlCommand("select * from talumno"); miConsulta.Connection=miConexion; misDatos = miConsulta.ExecuteReader(); System.Windows.Forms.MessageBox.Show("Consulta realizada correctamente"); } catch(Exception) { System.Windows.Forms.MessageBox.Show("Error al realizar la consulta"); } try { while(misDatos.Read()) { System.Windows.Forms.MessageBox.Show(misDatos.GetString(1)); } } catch(Exception) { System.Windows.Forms.MessageBox.Show("Error al acceder a los datos"); } misDatos.Close(); miConexion.Close(); } }

Ing. Juan Pablo Luna Felipez

63

BIBLIOGRAFIA
A programmers introduction to C#, Gunnerson Eric, Apress, 2000. C# El nuevo lenguaje de Internet, Gonzlez Seco Jos Antonio, 2001 Desarrollo De Aplicaciones Para Internet Con Asp .Net, Esteban Angel, Eidos, 2002 El lenguaje de Programacin C#, Gonzlez Seco Jos Antonio, 2002 Inside C#, Archer Tom, Microsoft , 2000 Mastering Visual Basic .Net, Petroutsos Evangelos, Sybex, 2002 Programacin En Visual Basic .Net, Blanco Luis Miguel, Eidos, 2002 MySQL 5.0 Reference Manual, MySQL AB www.sharpdevelop.net/OpenSource/SD/Download/ http://dev.mysql.com/downloads/. www.danysoft.com http://www.msdn.microsoft.com/net/ecma www.sybex.com http://es.wikipedia.org/wiki/.NET www.es.wikipedia.org/wiki/Proyecto_Mono http://tdg.lsi.us.es/~csharp http://www.msdn.microsoft.com/net http://www.csharphelp.com http://www.csharp-station.com http://www.imaginatica.us.es www.mysql.com www.dev.mysql.com www.mysql-hispano.org

Ing. Juan Pablo Luna Felipez

64

Potrebbero piacerti anche