miércoles, 10 de junio de 2009

MySql y C# Parte I

Bien, una de las grandes funciones que tiene la programación es crear aplicaciones que almacenen datos en Bases de datos, por esa razón, este apartado está dedicado a explicar como conectarnos a MySql (Una base de datos Gratuita) desde C# mediante la capa intermedia de OleDB, la cual es igual para todas las bases de datos del mundo, lo único que va a cambiar será el conection String que mas adelante explicamos a fondo.

Primero:
Necesitamos instalar la base de datos, para esto, puedes descargar MySql, en su ultima versión, o mejor dicho la mas resiente o bien descargar el Wamps, que es un administrador de servicios, que administra el servicio de la Base de Datos MySql, el servidor Apache y el Php simultáneamente.

Para descargar el Wamps dale clic al siguiente link (Si no funciona Copy/Paste la barra de navegación) .

También van a necesitar el Driver para conectarse por OledB lo descargan aqui, este permite conectarnos a la base de datos, existen tres formas posibles (bueno que yo conozca...)

El Oledb que acabo de mencionar
el ODBC, que es el mas antiguo
El Driver Nativo que es MySql.data que es propio para la base de datos.

Segundo:
Una vez instalado, también necesitamos una interface para conectarnos a la base de datos y crear nuestras bases de datos y tablas para eso, descargamos el Navicat desde aqui.

Desde el Navicat creamos una base de datos llamada data_colegio y una tabla de nombre Alumno, con los siguientes campos

RNE Varchar 15 (Primary Key)
Nombre Varchar 30
Apellido Varchar 30

Si tienes dudas de como usar el Navicat y el Wamps dale clic aqui

Una vez creada esta tabla entramos a C#, creamos un nuevo proyecto de Nombre cualquiera (en mi caso se llama Garrobito jejeje). y en la forma insertamos los controles necesarios para capturar los datos (Tres TextBox y tres Label). y un Botón con el nombre CmdGuardar (o el nombre que se les ocurra) .

Ahora insertamos un archivo de Clase, para esto, clic derecho en el explorador de objetos, pero nó en el solution y buscamos la opción Agregar (Add) y luego Clase (Class), le damos como nombre:
Funciones_Globales

Abrimos el archivo (Si es que no se abrió al crearlo) y en la parte de los using agregamos:
using System.Data;
using System.Data.OleDb;

Luego dentro de la clase, creamos un procedimiento publico de nombre AddAlumno de la siguiente forma:


public void AddAlumno(string id, string nombre, string apellido)
{
OleDbConnection cn = null;
OleDbTransaction tran = null;

try
{
///Si no se ve bien el texto, copia y pega el contenido en el blog de notas =)
cn = new OleDbConnection("Provider=MySQLProv; Data Source=data_colegio; User Id=root;Password=");
string query = "insert into alumno(RNE,NOMBRE, APELLIDO) values ('{0}','{1}','{2}')";
query = string.Format(query, id,nombre,apellido);

cn.Open();
OleDbCommand cmd = new OleDbCommand(query, cn);
cmd.ExecuteNonQuery();
cmd.Dispose();

}
catch (Exception ex)
{
throw ex;
}
finally
{
if (cn != null && cn.State != ConnectionState.Closed)
{
cn.Close();
cn.Dispose();
}
}

Lo salvamos y regresamos al Formulario en el evento clic del botón CmdGuardar escribimos:

Funciones_Globales Control = new Funciones_Globales();
try
{
Control.AddAlumno(MskRNE.Text, TxtNombre.Text, TxtApellido.Text);
MessageBox.Show("Se almacenaron los registros ");
}
catch (Exception er)
{
MessageBox.Show("Error al guardar los datos ");
}

y listo, en la buena teoría si siguieron todos los pasos debería de funcionar, explicando un poco el código:

Primera linea:
Funciones_Globales Control = new Funciones_Globales();
Declaramos una variable llama Control, de tipo Funciones_Globales (que es la clase) y la instanciamos en memoria.

Segunda Linea:
Abrimos el Try

Tercera Linea:
Llamamos el Método AddAlumno y le enviamos los tres argumentos que esta esperando, en mi caso mis controles son Un MasketEdit y dos textBox (observen los prefijos), y si todo está bien mostrará el mensaje de Se almacenaron los registros, en el caso que la función retorne un error el Catch la captura y muestra el mensaje Error al Guardar los datos

Por los momentos, solamente, espero este código les sirva.

lunes, 8 de junio de 2009

SQL

Buen dia Chicos



Pensé escribir un poco de SQL, pero recordé que no hay que inventar el agua helada, ya que muuuchas paginas tienen buena información sobre el tema, asi que mejor les dejo unos cuantos links...... jejejej:



http://www.aulaclic.es/sql/index.htm

http://www.desarrolloweb.com/manuales/9/

http://www.programatium.com/sql.htm

http://www.monografias.com/trabajos11/manu/manu.shtml


http://dev.mysql.com/doc/refman/5.0/es/sql-syntax.html

Espero lo lean, está bien completo y les ayudará a comprender mejor el SQL

martes, 2 de junio de 2009

MDI (Documento de Interface Múltiple)

Hasta el momento (o por lo menos si has seguido este foro) hemos visto formularios solitarios que al ejecutarlos abren una ventanita y punto, pero las aplicaciones de verdacita, tiene muchos formularios que son de la misma aplicación por esa razón existen los formularios MDI, que, son formularios Padres dentro de los cuales se abren otros formularios (hijos).

Como dije anteriormente dentro de un MDI pueden abrirse muchos formularios hijo, los cuales no pueden salir del formulario Padre (como se ve en la imagen siguiente) y cuando este se cierra, todos los hijos se cierran con el, a diferencia de otros Forms SDI (Single Document Interfase) que al cerrar uno lo otros se mantienen activos.


Para insertar un nuevo formulario MDI, damos clic derecho (en la venta de Solution Explorer) en el icono del Proyecto (No el que dice Solution, sinó el siguiente) y luego Add (Agregar), y despues New Item (Nuevo Elemento) y en las posibles opciones tenemos buscamos MDI Parent (En español no se, algo que diga MDI jejej).

Automaticamente nos aparece ya con el Menú PullDown (PopUp como le decían a mi ex compañero de colegio Tacamiche) la ToolBar y una barra de estado (Que por sierto en un Post anterio hablé de ella).

Solo resta configurarlo a nuestro gusto.

Ahora bien, si deseamos llamar un formulario desde nuestro MDI en el vento click de cualquier botón del ToolBar o alguna opción del menú hacemos lo siguiente:

Form1 patito = new Form1();
patito.MdiParent = this;
patito.Show();

La Primera Linea declara una Variable llamada patito, de tipo Form1, aludiendo que el primer formulario que crearon se llama así, sinó obviamente colóquenle el nombre que tiene el Formulario.

La segunda Linea: hace que el formulario hijo, sepa quien es su padre, en este caso this (Este formualio, de donde lo esta declarando) hace referencia al mismo MDI.

La Tercera Linea: simplemente muestra el formulario en pantalla.

Repetir este proceso para todos los demás formularios.

lunes, 1 de junio de 2009

Timer

El Timer o Temporalizador, es un control utilizado para ejecutar un bloque de instrucciones cada determinado tiempo (Medido en Mili segundos). Las propiedades importantes son:

Name (Ya saben para que es..)
Interval : Determina cada cuanto tiempo volverá a ejecutar las instrucciones que tiene programadas en su único evento el Tick. Si queremos que cada segundo ejecute un codigo deberiamos de color 1000 (Mil mili sendos un segundo, obvio verdad? jejeje).

Enabled: Establece si el objeto esta activo de desactivo, por defecto viene desactivo, hay que activarlo ya sea por codigo o directamente desde las propiedades.

como un ejemplo programale intervalo de 4000
y en el unico evento que tiene el Tick
Programa lo siguiente:


MessageBox.Show("Hola Mundo");

De esta forma, cada cuatro segundos se mostrará una ventana

Saludos