Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
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.
.NET Framework es la plataforma, de la tecnologa .NET, contiene un conjunto de herramientas y servicios para el desarrollo de aplicaciones
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.
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.
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.
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
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.
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.
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.
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.
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.
Lea el contrato, Seleccione Acepto los trminos del contrato de licencia y presione Instalar.
c) Aparecer la ventana de progreso de instalacin de componentes, espere un momento hasta que concluya la instalacin.
Presione Finalizar
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.
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
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.
Las clases se pueden relacionar entre s para lograr una mejor comprensin de ellas y as lograr una mejor funcionalidad dentro de un programa.
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.
10
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
3.2 Caractersticas de C#
Unidad del sistema de tipos Fuerte implementacin de la POO. Gestin de eventos segura y multipropsito. Tratamiento de excepciones
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.
12
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;
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
Sintaxis Ejemplo:
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).
14
Sintaxis
Ejemplo:
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; }
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:
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:
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) { ........ }
17
Sintaxis
Ejemplo:
for(contador=0;contador<100;contador++) { ........ }
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:
Para convertir una cadena de caracteres a Entero, se utiliza el mtodo Parse() Sintaxis: Ejemplo: Int Variable1=int.Parse(string); contador = int.Parse(cadena);
18
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];
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;
19
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 { }
20
c) Estructura de una clase Para declarar una clase en C# se debe seguir la siguiente sintaxis:
Sintaxis:
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 { } }
21
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:
Ejemplo:
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:
Ejemplo:
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:
Ejemplo: void setAncho(int a) { ancho = a; } void setPosicion (int x, int y, int z) { PosX=x; PosY=Y; PosZ=z; }
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:
Ejemplo:
int numeroDeDigitosDeUnNumero (long n) { int c=1; while (n>9) { c++; n=n/10; } return (c); }
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:
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:
25
Sintaxis
Ejemplo:
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
Ejemplo:
26
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.
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); }
27
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;
28
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:
Ejemplo:
29
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.
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:
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:
Ambos procesos de declarar y construir una instancia, se pueden realizar en una sola lnea de cdigo:
Sintaxis: NombreClase NombreInstancia=new NombreClase(ArgumentosDelConstructor);
Ejemplo:
30
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:
31
La consola suele ser muy til para describir comportamientos internos de un programa, su sintaxis es:
Sintaxis: Ejemplo:
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:
Ejemplo:
public static void Main(string [] args ) { CRectangulo rectangulo; rectangulo = new CRectangulo(); rectangulo.setAncho(5); }
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.
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
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
UInt16 16 Int32 32
UInt32 32 Int64 64
UInt64 64 Single 32
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 ]
34
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
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)
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
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)
O ejecute el archivo:
37
Una vez ingresado a SharpDevelop, se podr ver la interfaz grfica, que es sencilla y presenta el siguiente aspecto:
38
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:
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.
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.
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.
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.
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.
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
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.
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:
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
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.
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.
46
El NumericUpDown: Es un control de Windows que permite seleccionar elementos numricos de una lista navegando a travs de ellos.
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
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
49
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:
DataGridView: Despliega y permite manipular una vista de los datos en una cuadricula de datos
Re
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
50
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
51
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
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#.
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
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
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)
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.
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
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
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)
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.
56
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;
Una vez Instalado el Connector / NET, hecha la referencia el ensamblado MySQL.Data y utilizado el espacio de nombre MySql.Data.MySqlClient, solo resta
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
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
Para realizar consultas SQL, de C# a una base de datos de MySQL, se deben seguir los siguientes pasos:
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;
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
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"); }
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
60
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();
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));
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(); } }
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
64