Está en la página 1de 19

Aprovecho este correo para hacer llegar el planteamiento para realizar la evidencia de

aprendizaje de esta segunda unidad, les pido que analicen cuidadosamente lo


siguiente:
La empresa peopleNET est Desarrollando un sistema para realizar encuestas por
telfono de diversos temas. Una parte muy importante del sistema es un catlogo
donde se tendrn dado de alta los datos de las personas que se encuestan. El sistema
se est realizando en Visual Basic .NET, pero para este mdulo solo est creada la
tabla en la base de datos la cual contiene los siguientes campos:
Id_contacto
Nombre_completo
Edad
Sexo(masculino o femenino)
Direccion
Telfono
Este catlogo que se desea desarrollar, permitir al usuario dar de alta un contacto
modificarlo o eliminarlo segn sea el caso. Les recuerdo que para este caso se hace
necesario que la interfaz deba permitir al usuario dar de alta un contacto, modificarlo o
eliminarlo segn sea el caso, para realizar esto forzosamente tendrn que poner
componentes Button para realizar estas acciones.
Evidencia de aprendizaje. Diseo de interfaces mediante .NET Esta actividad tiene
como propsito Disear una interfaz grfica de usuario en VB.NET, que interacte con
una base de datos, para ello retoma el proyecto planteado en la actividad 2 Interfaces
y toma como apoyo el planteamiento que te har llegar tu Facilitador (a), una vez que
hayas recuperado tu proyecto de la actividad 2 Interfaces y cuentes con el
planteamiento:
1. Identifica los campos de la tabla de base de datos del planteamiento de tu proyecto
e integra los datos en la tabla.
2. Analiza la tabla de datos e identifica los datos que se almacenarn en el formulario.
3. Con base en la tabla de base de datos crea el formulario.
4. Identifica los componentes de conexin a bases de datos que utilizars y disea la
interfaz grfica de usuario con VB .NET con base a los requerimientos de tu proyecto,
integrando todos los campos y botones necesarios para que esta interfaz interacte
con la tabla en la base de datos.
5. Explica la relacin de la base de datos con la realizacin de la interfaz grfica de
usuario.
6. Guarda la actividad con el nombre DPRN3_U2_EA_XXYZ. Sustituye las XX por las
dos primeras letras de tu primer nombre, la Y por tu primer apellido y la Z por tu
segundo apellido y enva el archivo a tu Facilitador(a) para recibir retroalimentacin al
Portafolio de evidencias.
CONECTAR C# Y MYSQL

Hola amigos, bienvenidos a este importante post, este es el inicio para aprender a
crear una conexin en C# con MySQL, posteriormente realizaremos una insercin,
modificacin y eliminacin de datos en una base de datos desde C#, pero por ahora lo
importarte es crear la base de datos y crear la cadena de conexin en C#.
1.- Lo primero que debemos hacer es crear la base de datos en MySQL, lo cual yo uso
el software MySQL Workbench para crear bases de datos, si quieres aprender su uso
y creacin de base de datos (incluyendo diagrama E-R) puedes ver los tutoriales aqu.
En el siguiente video muestro una breve introduccin y la creacin de la base de
datos: http://www.youtube.com/watch?v=jI9c_wYgU1g
Cdigo para crear la BD y su respectiva tabla:
create database Tutorial;
use Tutorial;
CREATE TABLE Clientes (
IdCliente INT NOT NULL AUTO_INCREMENT,
Nombre VARCHAR(50) NOT NULL,
Apellido VARCHAR(45) NOT NULL,
Fecha_Nacimiento DATE NOT NULL,
Direccion Text,
PRIMARY KEY (IdCliente)
) ENGINE=InnoDB;
Lo siguiente que necesitamos es instalar el driver que proporciona mysql para
conectarnos desde .NET , el cual se llama MySQL Connector/Net, y lo puedes
descargar desde Aqu.
En el siguiente video les muestro la instalacin: http://www.youtube.com/watch?
v=m5WwaFwK3Wo

Luego de haber instalado el conector de mysql se puede decir que ya estamos listos
para trabajar en C# y conectarnos con la base de datos que hemos creado en mysql.
Lo que haremos ser crear un nuevo proyecto Windows forms al cual le
llamaremos ConexionCSharpconMySQL al cual le crearemos un formulario como
este:

OJO!!! en el ToolStrip de la parte de abajo para que se muestre el texto e imgenes


en los botones, a la propiedad DisplayStyle se le debe de asignar ImageAndText.
Ahora lo que vamos hacer es agregar una nueva clase a la cual le llamaremos
BdComun, dicha clase nos servir para tener la cadena de conexin hacia MySQL el
cual tendr el siguiente cdigo:
public class BdComun
{
public static MySqlConnection ObtenerConexion()
{
MySqlConnection conectar = new MySqlConnection("server=127.0.0.1;
database=Tutorial; Uid=root; pwd=;");
conectar.Open();
return conectar;
}
}
Explicacin del cdigo:
ObtenerConexion = Nombre del mtodo que nos conectar a la base de datos.
Server = Servidor de MySQL.
database = Nombre de la base de datos a la cual nos conectamos.
Uid = Nombre del usuario de Mysql (por defecto "root")
pwd = Contrasea del usuario (dejar en blanco si no tiene).
Finalmente el video practico para entender ms
Link del video: http://www.youtube.com/watch?v=e8R3-EXqQIM (entra y dale like)

Espero que te haya servido, en el siguiente articulo aprenderemos a insertar registros


a la bd, si te gustaron los vdeos dale like en youtube y comprtelos!!. Adios!
Clic Aqu para ver la continuacin.
---------------------------------------------------------------------

Insertar, Modificar, Eliminar y Consultar datos con C# y MySQL - Pt 1

MrFrankling
INSERTAR, MODIFICAR, ELIMINAR Y CONSULTAR REGISTROS EN MYSQL
DESDE C# - PARTE 1

Hola amigos, bienvenidos nuevamente aun nuevo articulo relacionado a C# y MySQL,


anteriormente aprendimos a conectarnos a MySQL desde C# puedes ver Aqu el post,
lo que aprenderemos ahora ser a insertar registros desde C# hacia la base de datos
MySQL, pues ya teniendo listas las conexiones, de seguro recuerdan que creamos
una clase llamada BdComun esta a su vez contiene un mtodo llamado
ObtenerConexion el cual tiene la cadena de conexin.
Ahora lo que vamos a hacer ser crear un nueva clase llamada Cliente que
bsicamente en programacin Orientada a Objetos representara un objeto cliente. En
este sentido debe tener datos relacionados al cliente, debemos agregar los mismos
campos que tenemos en la tabla Clientes de la base de datos.
Este seria el cdigo de la clase Cliente:
public class Cliente
{
public int Id { get; set; }
public string Nombre { get; set; }
public string Apellido { get; set; }
public string Fecha_Nac { get; set; }
public string Direccion { get; set; }
public Cliente() { }
public Cliente(int pId, string pNombre, string pApellido, string pFecha_Nac, string
pDireccion)
{
this.Id = pId;
this.Nombre = pNombre;
this.Apellido = pApellido;
this.Fecha_Nac = pFecha_Nac;
this.Direccion = pDireccion;
}
}

Como ven, tiene cinco propiedades que son equivalentes a los cinco campos de la
tabla, al igual, tiene un constructor vaco public Cliente() { }, el cual se utiliza para
crear los objetos ya que de esta forma no recibe parmetros y podemos invocarlo sin
problemas. Por otra parte, tenemos otro constructor el cual tiene cinco parmetros,
podemos interpretar que los parmetros nos servirn para enviar o trasportar los datos
hacia las propiedades y posteriormente donde nosotros los queramos utilizar.
Lo siguiente que haremos ser agregar una nueva clase a la que llamaremos
ClientesDAL esta clase tendr mtodos que nos ejecutaran comandos hacia MySQL
tales como un Insert, delete, update, entre otros. Por el momento vamos aadir
el mtodo agregar el cual insertara un cliente a la BD. La clase quedara as:
public class ClientesDAL
{
public static int Agregar(Cliente pCliente)
{
int retorno = 0;
MySqlCommand comando=new MySqlCommand(string.Format("Insert into
clientes (Nombre, Apellido, Fecha_Nacimiento, Direccion) values ('{0}','{1}','{2}', '{3}')",
pCliente.Nombre, pCliente.Apellido, pCliente.Fecha_Nac, pCliente.Direccion),
BdComun.ObtnerCOnexion());
retorno = comando.ExecuteNonQuery();
return retorno;
}
}
Ya teniendo esto, nos dirigimos al formulario y programamos en el
evento clic del botn. Lo que se debe hacer es crear un cliente, es decir, llenar sus
respectivas propiedades y ejecutar el mtodo agregar para que nos inserte el cliente.
El cdigo seria el siguiente:
private void btnGuardar_Click(object sender, EventArgs e)
{
Cliente pCliente = new Cliente();
pCliente.Nombre = txtNombre.Text.Trim();
pCliente.Apellido = txtApellido.Text.Trim();
pCliente.Fecha_Nac = dtpFechaNacimiento.Value.Year + "/" +
dtpFechaNacimiento.Value.Month + "/" + dtpFechaNacimiento.Value.Day;
pCliente.Direccion = txtDireccion.Text.Trim();
int resultado = ClientesDAL.Agregar(pCliente);
if (resultado > 0)
{
MessageBox.Show("Cliente Guardado Con Exito!!", "Guardado",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("No se pudo guardar el cliente", "Fallo!!",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

}
}

De seguro surgen dudas, para que todo quede mas claro ac les dejo
el vdeo explicativo, que complementara lo anterior:

Link del vdeo: http://www.youtube.com/watch?v=IT_R46g7YTk (Dale Like)


Clic Aqu para ver la segunda parte!!!
http://franklintutoriales.blogspot.mx/2013/06/conexion-c-y-mysql.html

Insertar, Modificar, Eliminar y Consultar registros en


MySQL desde C# Parte 2

INSERTAR, MODIFICAR,
ELIMINAR Y CONSULTAR
REGISTROS EN MYSQL DESDE
C# - PARTE 2
Hola colegas, ahora vamos a continuar con la
segunda parte de los tutoriales sobre C# y MySQL, en
los que estamos aprendiendo a insertar, modificar,
eliminar y consultar registros desde C# en una tabla
de MySql (Clientes), en la parte anterior aprendimos
a insertar registros en la tabla clientes lo puedes ver
ac. En esta parte vamos aprender a consultar
registros, por lo cual realizaremos una bsqueda de
un cliente especifico por su nombre y apellido, para
poder mostrarlo en un
DataGridView, bsicamente seria una pequea
consulta hacia la tabla Clientes, Por lo tanto lo que
debemos realizar seria lo siguiente:

1. Agregar un nuevo formulario al cual le llamaremos


BuscarClientes, el cual debe contener dos label
(Nombre, Apellido), dos textbox para el nombre y el
apellido respectivamente, un DataGridview y 3
botones el diseo te debera quedar como lo muestro
en la siguiente imagen:

2. Crear un mtodo en la clase ClientesDAL al cual


le nombraremos Buscar y tendr el
siguiente cdigo:
public static List<Cliente> Buscar(string pNombre, string pApellido)
{
List<Cliente> _lista = new List<Cliente>();
MySqlCommand _comando = new MySqlCommand(String.Format(
"SELECT IdCliente, Nombre, Apellido, Fecha_Nacimiento, Direccion
FROM clientes where Nombre ='{0}' or Apellido='{1}'", pNombre,pApellido),
BdComun.ObtenerConexion());
MySqlDataReader _reader = _comando.ExecuteReader();
while (_reader.Read())
{
Cliente pCliente = new Cliente();
pCliente.Id = _reader.GetInt32(0);
pCliente.Nombre = _reader.GetString(1);
pCliente.Apellido = _reader.GetString(2);
pCliente.Fecha_Nac = _reader.GetString(3);
pCliente.Direccion = _reader.GetString(4);

_lista.Add(pCliente);
}
}

return _lista;

3. Ya teniendo el mtodo Buscar creado, agregamos


otro mtodo ms, el cual lo he nombrado
ObtenerCliente, y tiene el siguiente cdigo:
public static Cliente ObtenerCliente(int pId)
{

Cliente pCliente = new Cliente();


MySqlConnection conexion = BdComun.ObtenerConexion();

MySqlCommand _comando = new


MySqlCommand(String.Format("SELECT IdCliente, Nombre, Apellido,
Fecha_Nacimiento, Direccion FROM clientes where IdCliente={0}", pId),
conexion);
MySqlDataReader _reader = _comando.ExecuteReader();
while (_reader.Read())
{
pCliente.Id = _reader.GetInt32(0);
pCliente.Nombre = _reader.GetString(1);
pCliente.Apellido = _reader.GetString(2);
pCliente.Fecha_Nac = _reader.GetString(3);
pCliente.Direccion = _reader.GetString(4);
}
conexion.Close();
return pCliente;
}

4. Ahora lo que hacemos es abrir el formulario


Buscar Cliente cuando se haga clic en el botn Buscar
del formCliente (ver vdeo).
5. En el formulario BuscarCliente en su botn Buscar
invocamos el mtodo Buscar, para cargar los datos en

el datagridview el cdigo quedara asi:


private void btnBuscar_Click(object sender, EventArgs e)
{
dgvBuscar.DataSource = ClientesDAL.Buscar(txtNombre.Text,
txtApellido.Text);
}

6. Ahora en el botn Aceptar capturamos el Id del


cliente seleccionado e invocamos
el mtodo ObtenerCliente enviando
como parmetro el Id que selecciono el usuario en el
datagridview, el cdigo es el siguiente:
private void btnAceptar_Click(object sender, EventArgs e)
{
if (dgvBuscar.SelectedRows.Count == 1)
{
int id = Convert.ToInt32(dgvBuscar.CurrentRow.Cells[0].Value);
ClienteSelecionado = ClientesDAL.ObtenerCliente(id);
this.Close();

}
else
MessageBox.Show("debe de seleccionar una fila");
}

prcticamente esto seria todo, ahora puedes ver


el vdeo para aclara todas las dudas o errores que han
surgido:
Link del video: http://www.youtube.com/watch?
v=xXxXse4W77Y (Dale like)
Continua con la siguiente parte clic Aqu

Insertar, modificar, eliminar y consultar registros en MySQL desde C# - Parte 3

Hola amigos/as bienvenidos a la parte tres sobre los tutoriales de insertar, eliminar,
modificar y consultar datos desde C# y MySQL, ya aprendimos a insertar y consultar,
para los que han estado siguiendo los anteriores vdeos se dieron cuenta que luego
de mostrar los datos del cliente en el datagridview seleccionbamos un cliente y
pasbamos los datos al formulario clientes, entonces ya teniendo los datos del cliente
en el formulario de registro podremos cambiar por ejemplo el nombre y al darle en
el botn actualizar nos debe actualizar los datos que hemos cambiado, para esto lo
primero que haremos sera agregar un nuevo mtodo en la clase ClientesDAL que si
recuerdas es la clase que utilizamos para interactuar con la BD, al mtodo le
nombraremos Actualizar y tendr el siguiente cdigo
public static int Actualizar(Cliente pCliente)
{
int retorno = 0;
MySqlConnection conexion = BdComun.ObtenerConexion();

MySqlCommand comando = new MySqlCommand(string.Format("Update


clientes set Nombre='{0}', Apellido='{1}', Fecha_Nacimiento='{2}', Direccion='{3}'
where IdCliente={4}",
pCliente.Nombre, pCliente.Apellido, pCliente.Fecha_Nac,
pCliente.Direccion, pCliente.Id), conexion);
retorno = comando.ExecuteNonQuery();
conexion.Close();
return retorno;
}

Lo siguiente que hacemos es agregar una propiedad nombrada clienteActual en la


parte superior de la programacin del formulario Clientes (Ver Vdeo).
Y luego en la programacin del botn Buscar aadimos la siguiente linea
de cdigo que vez en la imagen:

Al asignarle a clienteActual lo que tiene buscar.ClienteSeleccionado,


la propiedad clienteActual tendr todos los datos del cliente seleccionado por el
usuario en el datagridview, incluyendo el Id que necesitamos para actualizar.
Por Ultimo programamos el botn Actualizar el cual contiene el siguiente cdigo:
Cliente pCliente = new Cliente();
pCliente.Nombre = txtNombre.Text.Trim();
pCliente.Apellido = txtApellido.Text.Trim();
pCliente.Fecha_Nac = dtpFechaNacimiento.Value.Year + "/" +
dtpFechaNacimiento.Value.Month + "/" + dtpFechaNacimiento.Value.Day;
pCliente.Direccion = txtDireccion.Text.Trim();
pCliente.Id = ClienteActual.Id;
if (ClietesDAL.Actualizar(pCliente) > 0)
{
MessageBox.Show("Los datos del cliente se actualizaron", "Datos
Actualizados", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("No se pudo actualizar", "Error al Actualizar",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
Finalmente te dejo el vdeo donde te explico y compruebo la actualizacin de datos, no
te olvides dejar tu comentario si te ayudado con el tutorial:

Espero que haya sido te tu agrado el articulo, y continua con la parte 4.

El cdigo C# completo de la aplicacin (para los botones de conectar con servidor, usar
esquema, aadir select SQL y ejecutar consulta SQL, as como las funciones para
obtener las bases de datos de MySQL y las tablas de la base de datos seleccionada se
muestra a continuacin:
using
using
using
using
using
using

System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Linq;

using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace AjpdSoftAccesoMySQLCsharp
{
public partial class formAccesoMySQL : Form
{
private MySqlConnection conexionBD;
private void obtenerBasesDatosMySQL ()
{
MySqlDataReader registrosObtenidosMySQL = null;
MySqlCommand cmd =
new MySqlCommand("SHOW DATABASES", conexionBD);
try
{
registrosObtenidosMySQL = cmd.ExecuteReader();
lsBD.Items.Clear();
while (registrosObtenidosMySQL.Read())
{
lsBD.Items.Add(registrosObtenidosMySQL.GetString(0));
}
}
catch (MySqlException ex)
{
MessageBox.Show("Error al obtener bases de datos de
MySQL: " +
ex.Message,"Error al obtener catlogos",
MessageBoxButtons.OK,MessageBoxIcon.Error);
}
finally
{
if (registrosObtenidosMySQL != null)
registrosObtenidosMySQL.Close();
}
}
private void obtenerTablasBDMysql(string bd)
{
MySqlDataReader reader = null;
try
{

conexionBD.ChangeDatabase(bd);
MySqlCommand cmd = new MySqlCommand("SHOW TABLES",

conexionBD);

reader = cmd.ExecuteReader();
lsTablas.Items.Clear();
while (reader.Read())
{
lsTablas.Items.Add(reader.GetString(0));
}

}
catch (MySqlException ex)
{
MessageBox.Show("Error al obtener la lista de tablas "

"de la BD de MySQL: " +


ex.Message,"Error obtener tablas",
MessageBoxButtons.OK, MessageBoxIcon.Error);

}
finally
{
if (reader != null) reader.Close();
}

public formAccesoMySQL()
{
InitializeComponent();
}
private void btConectar_Click(object sender, EventArgs e)
{
if (conexionBD != null)
conexionBD.Close();
string connStr =
String.Format("server={0};port={1};user id={2};
password={3}; " +
"database=mysql; pooling=false;" +
"Allow Zero Datetime=False;Convert Zero
Datetime=True",
txtServidor.Text,txtPuerto.Text, txtUsuario.Text,
txtContrasena.Text);
try
{
conexionBD = new MySqlConnection(connStr);
conexionBD.Open();

MySQL: " +

obtenerBasesDatosMySQL();
}
catch (MySqlException ex)
{
MessageBox.Show("Error al conectar al servidor de
ex.Message, "Error al conectar",
MessageBoxButtons.OK, MessageBoxIcon.Error);

private void btSelectSQL_Click(object sender, EventArgs e)


{
txtSQL.Text = "select * from " + lsTablas.Text;
}
private void btUsarEsquema_Click(object sender, EventArgs e)
{
obtenerTablasBDMysql(lsBD.Text);
}
private void btEjecutar_Click(object sender, EventArgs e)
{
if (opDatos.Checked)
{
DataTable tabla;
MySqlDataAdapter datosAdapter;
MySqlCommandBuilder comandoSQL;

try
{
tabla = new DataTable();
datosAdapter = new MySqlDataAdapter(txtSQL.Text,

conexionBD);

comandoSQL = new
MySqlCommandBuilder(datosAdapter);
datosAdapter.Fill(tabla);
dbGrid.DataSource = tabla;
}
catch (Exception ex)
{
MessageBox.Show("Error al mostrar los datos de la
tabla [" +

lsTablas.Text + "] de MySQL: " +


ex.Message, "Error ejecutar SQL",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
if (opNoDatos.Checked)
{
try
{
int numeroRegistrosAfectados = 0;
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = conexionBD;
cmd.CommandText = txtSQL.Text;
cmd.Prepare();
numeroRegistrosAfectados = cmd.ExecuteNonQuery();
MessageBox.Show("Consulta de modificacin de datos

" +
".",

"ejecutada, nmero de registros afectados: " +


Convert.ToString(numeroRegistrosAfectados) +

"Consulta SQL ejecutada",


MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show("Error ejecutar consulta de " +
"modificacin de datos: " +
ex.Message, "Error ejecutar SQL",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
private void linkAjpdSoft_LinkClicked(object sender,
LinkLabelLinkClickedEventArgs e)
{
System.Diagnostics.Process.Start("http://www.ajpdsoft.com");
}
}
}

http://www.taringa.net/posts/hazlo-tu-mismo/9227381/Programando-en-C-14.html
Comenzaremos con la primera clase:

<?
class Persona
{
protected string SNombre, SApellido; // Notese que dice protec
ted. El hecho de que no diga "private" es por que la clase que hereda
de esta ve las variables y el resto del programa no (De ahora en mas s
e llamaran al momento de declarar las variables "Atributos").
public string ElNombre //Propiedades para declarar los valores
del nombre y apellido de la persona.
{
get
{
return SNombre;
}
set
{
SNombre = value;
}
}

public string ElApellido


{
get
{
return SApellido;
}
set
{
SApellido = value;
}
}

>
Es la clase bsica para administrar los datos de cualquier persona. Esta suele ser una clase
que se usa constantemente, siendo que si tienen que poner varios datos de distintas clases
de personas, como es vendedor, cliente, administrador, etc, todos se vinculan con una clase
"persona".

<?
class Cliente : Persona // Con esta notacin fijens que lo que ha
go es poner el nombre de la clase que es la heredada y luego de los do
s puntos, la causante.
{
private int IDNI, ITelefono;
public int ElDNI
{
get
{
return IDNI;
}
set

{
}

IDNI = value;

}
public int ElTel
{
get
{
return ITelefono;
}
set
{
ITelefono = value;
}
}
public void GetDatos(ListBox List)
{
string Cadena;
List.Items.Add(SApellido + " " + SNombre + " Tel: " + ITel
efono.ToString() + " DNI: " + IDNI.ToString()); // Lo que armo ac es
una cadena de caracteres, fijens que poniendo el signo + uno dos cade
nas.
Cadena = SApellido.Substring(2, SApellido.Length); // Por
otro lado podemos ver que si una cadena toma la otra o fragmentos de
la anterior, lo que hago ac es decirle que tome la posicin 2 y copie
en "Cadenas" hasta el final de la cadena.
}
}
>
NOTA: El ltimo cdigo que dice Cadena = etc, es solo demostrativo para un uso de cadena
de caracteres, durante los siguientes post ir dando algunos comandos ms.
En el siguiente paso dar el ejemplo de como implementar todo esto en un formulario, este
formulario principal tiene los siguientes elementos:
5 botones, los cuales todos estn nombrados genricamente. Un error mio es no haber
puesto en el nombre de la variable del boton para que serva cada uno, por lo tanto dejo una
aclaracin de que va escrito en el texto del botn para que se entienda para que sirve cada
cosa con la simple lectura.

<?

public partial class Form1 : Form


{
Cliente[] LosClientes;
Persona[] Vendedores;
int C = 0, V = 0, NUM;
public Form1()
{
Vendedores = new Persona[5]; //En este caso vamos a hacer
un ejemplo con un numero fijo, mas adelante veremos clases de vectores
que reforman su tamao.
LosClientes = new Cliente[5];
InitializeComponent();
}
private void btnCliente_Click(object sender, EventArgs e) //
Botn de carga de datos de cliente, le puse el texto "Cliente" encima.
{

Form2 Clientes = new Form2();


Cliente CL = new Cliente();
if (Clientes.ShowDialog() == DialogResult.OK && C < 5)
{
CL.ElNombre = Clientes.tbNombre.Text;
CL.ElApellido = Clientes.tbApellido.Text;
CL.ElDNI = Convert.ToInt32(Clientes.tbDNI.Text);
CL.ElTel = Convert.ToInt32(Clientes.tbTel.Text); //
Procuren poner nmeros en los dos textbox por que se les puede romper
el programa. Mas adelante dar forma para que no pase eso.
LosClientes[C] = CL;
C++;
}
}
private void button3_Click(object sender, EventArgs e)
// Botn de carga de datos del vendedor, le puse "Vendedor" encima.
{
Form2 Vendedor = new Form2();
Persona ElVendedor = new Persona();
Vendedor.tbTel.Visible = false;
Vendedor.tbDNI.Visible = false;
Vendedor.lbTel.Visible = false;
Vendedor.lbDNI.Visible = false;
// Lo que hice ac es poner en publico los dos labels y puse que sean
invisibles cuando se abra la ventana.
if (Vendedor.ShowDialog() == DialogResult.OK && V < 5) //E
l C menor a 5 y el V menor a 5 es para que no se pase de la cantidad d
e posiciones.
{
ElVendedor.ElNombre = Vendedor.tbNombre.Text;
ElVendedor.ElApellido = Vendedor.tbApellido.Text;
Vendedores[V] = ElVendedor;
V++;
}
}
private void button2_Click(object sender, EventArgs e) // Boto
n de busqueda, le puse el texto "Buscar" encima del botn.
{
Form3 BuscarCL = new Form3();
int Combo;
listBox1.Items.Clear();
if (BuscarCL.ShowDialog() == DialogResult.OK)
{
Combo = BuscarCL.comboBox1.SelectedIndex;
switch (Combo)
{
case 0:
for (int i = 0; i < 5; i++)
{
if (LosClientes[i] != null && BuscarC
L.tbBusqueda.Text == LosClientes[i].ElNombre) // Si LosClientes es dis
tinto de nulo, compara el dato, pero si es nulo quiere decir que an e
sa posicin de vector no fue cargado.
{
LosClientes[i].GetDatos(listBox1);
NUM = i;
}
}

break;
case 1:
for (int i = 0; i < 5; i++)
{
if (LosClientes[i] != null && BuscarC
L.tbBusqueda.Text == LosClientes[i].ElApellido)
{
LosClientes[i].GetDatos(listBox1);
NUM = i;
}
}
break;
case 2:
for (int i = 0; i < 5; i++)
{
int N = Convert.ToInt32(BuscarCL.tbBusqued
a.Text); //Ojo que hay que poner nmeros, ya me explayar en como solu
cionar estas cosas.
if (LosClientes[i] != null && N == LosClie
ntes[i].ElDNI)
{
LosClientes[i].GetDatos(listBox1);
NUM = i;
}
}
break;
case 3:
for (int i = 0; i < 5; i++)
{
int N = Convert.ToInt32(BuscarCL.tbBusqued
a.Text);
if (LosClientes[i] != null && N == LosClie
ntes[i].ElTel)
{
LosClientes[i].GetDatos(listBox1);
NUM = i;
}
}
break;
}
}
}
private void button5_Click(object sender, EventArgs e)
//Botn de muestra de datos del cliente, le puse "Mostrar" encima.
{
listBox1.Items.Clear();
listBox1.Items.Clear();
for (int i = 0; i < 5; i++)
{
if (LosClientes[i] != null)
{
LosClientes[i].GetDatos(listBox1);
}
if (Vendedores[i] != null)
{
listBox2.Items.Add(Vendedores[i].ElNombre + " " +
Vendedores[i].ElApellido);
}
}

}
private void button1_Click(object sender, EventArgs e) // Bot
n para modificar datos del cliente, le puse "M.Cliente" encima.
{
Form2 Clientes = new Form2();
if (Clientes.ShowDialog() == DialogResult.OK && NUM < 5) /
/Esto es para modificar los datos del cliente.
{
LosClientes[NUM].ElNombre = Clientes.tbNombre.Text;
LosClientes[NUM].ElApellido = Clientes.tbApellido.Text
;
LosClientes[NUM].ElDNI = Convert.ToInt32(Clientes.tbDN
I.Text);
LosClientes[NUM].ElTel = Convert.ToInt32(Clientes.tbTe
l.Text);
// Procuren poner nmeros en los dos textbox por que se les puede romp
er el programa. Mas adelante dar forma para que no pase eso.
}
>

Luego de haber visto y entendido cada parte de este cdigo: TAREA:


Hacer un programa que contenga una clase "Curso" donde se puedan cargar datos de 30
alumnos y de 2 profesores.
En dicho programa se deber poder modificar los datos de todos, buscar cualquiera de los
alumnos o profesor, etc.
A su vez, el programa deber permitir guardar direcciones de mail de cada uno de los
alumnos, as que el mismo deber reconocer el arroba y el ".com" de cada direccin para que
sea vlida su guardada.

También podría gustarte