Está en la página 1de 54

DESARROLLO DE LA ACTIVIDAD

 Crea una clase Racional que permita trabajar con números racionales (fracciones). Incluye
los siguientes métodos: constructores (por defecto y parametrizado), accedentes, suma,
resta, multiplicación, división.

 Declaración de la clase Racional en C# (biblioteca de clases .Net Framework)


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace capaLogica1
{
public class Racional1
{
/*La clase la trabajo como Biblioteca de Clases.Netframe*/
//Declaración de los atributos
private int numerador;
private int denominador;

//Declaración de las operaciones, ó, metodos de la Clase Racional

/* Establecemos comunicación entre la aplicación(Main) y la clase(Racional)


Defino los metodos get y set usando insertar fragmento de codigo_propfull*/
public int Numerador
{
get { return numerador; }
set { numerador = value; }
}
public int Denominador
{
get { return denominador; }
set { denominador = value; }
}

/*Declaración de los metodos constructores (un constructor se utiliza sólo cuando


se crea un objeto para inicializar los datos de éste):*/

/*Metodo Constructor por Defecto: inicializo los atributos


desde Racional(clase)*/
public Racional1()
{
this.numerador = 2;
this.denominador = 3;
}
/*Metodo Constructor por Parametros: inicializo los atributos desde
Main(aplicación)*/
public Racional1(int numerador1, int denominador1)
{
this.numerador = numerador1;
this.denominador = denominador1;
}
//Metodo Suma
public void suma(int numerador1, int denominador1)
{
this.numerador = (this.numerador * denominador1) + (numerador1 *
this.denominador);
this.denominador = this.denominador * denominador1;
}
public void resta(int numerador1, int denominador1)
{
this.numerador = (this.numerador * denominador1) - (numerador1 *
this.denominador);
this.denominador = this.denominador * denominador1;
}
public void multiplicacion(int numerador1, int denominador1)
{
this.numerador = this.numerador * numerador1;
this.denominador = this.denominador * denominador1;
}
public void division(int numerador1, int denominador1)
{
this.numerador = this.numerador * denominador1;
this.denominador = this.denominador * numerador1;
}
}
 Declaración de la clase Form1 en C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using capaLogica1;

namespace WF_Fraccionario
{
public partial class Form1 : Form
{
// crea un objeto Racional1 y lo asigna a Racional1 llama Racional1
// con metodo constructor por defecto
private Racional1 miRacional1 = new Racional1();
public Form1()
{
InitializeComponent();
}

private void Button1_Click(object sender, EventArgs e)


{
Operación.Text = "+ Default";
//Cargo al formulario los constructores por defecto
txtNumerador.Text = miRacional1.Numerador.ToString();
txtDenominador.Text = miRacional1.Denominador.ToString();
//Llamo suma y lo cargo con el valor del segundo fraccionario
miRacional1.suma(int.Parse(txtNumerador2.Text), int.Parse(txtDenominador2.Text));
//Cargo al formulario las respuesta de la operación
txtNumerador3.Text = miRacional1.Numerador.ToString();
txtDenominador3.Text = miRacional1.Denominador.ToString();
}

private void Button2_Click(object sender, EventArgs e)


{
Operación.Text = "- Default";
//Cargo al formulario los constructores por defecto
txtNumerador.Text = miRacional1.Numerador.ToString();
txtDenominador.Text = miRacional1.Denominador.ToString();
//Llamo resta y lo cargo con el valor del segundo fraccionario
miRacional1.resta(int.Parse(txtNumerador2.Text), int.Parse(txtDenominador2.Text));
//Cargo al formulario las respuesta de la operación
txtNumerador3.Text = miRacional1.Numerador.ToString();
txtDenominador3.Text = miRacional1.Denominador.ToString();
}

private void Button3_Click(object sender, EventArgs e)


{
Operación.Text = "* Default";
//Cargo al formulario los constructores por defecto
txtNumerador.Text = miRacional1.Numerador.ToString();
txtDenominador.Text = miRacional1.Denominador.ToString();
//Llamo multiplicación y lo cargo con el valor del segundo fraccionario
miRacional1.multiplicacion(int.Parse(txtNumerador2.Text),
int.Parse(txtDenominador2.Text));
//Cargo al formulario las respuesta de la operación
txtNumerador3.Text = miRacional1.Numerador.ToString();
txtDenominador3.Text = miRacional1.Denominador.ToString();
}

private void Button4_Click(object sender, EventArgs e)


{
Operación.Text = "/ Default";
//Cargo al formulario los constructores por defecto
txtNumerador.Text = miRacional1.Numerador.ToString();
txtDenominador.Text = miRacional1.Denominador.ToString();
//Llamo división y lo cargo con el valor del segundo fraccionario
miRacional1.division(int.Parse(txtNumerador2.Text), int.Parse(txtDenominador2.Text));
//Cargo al formulario las respuesta de la operación
txtNumerador3.Text = miRacional1.Numerador.ToString();
txtDenominador3.Text = miRacional1.Denominador.ToString();
}

private void Button5_Click(object sender, EventArgs e)


{
Operación.Text = "+ Parameter";
//Cargo al formulario los constructores por Parametros
miRacional1.Numerador = int.Parse(txtNumerador.Text);
miRacional1.Denominador = int.Parse(txtDenominador.Text);
//Llamo suma y lo cargo con el valor del segundo fraccionario
miRacional1.suma(int.Parse(txtNumerador2.Text), int.Parse(txtDenominador2.Text));
//Cargo al formulario las respuesta de la operación
txtNumerador3.Text = miRacional1.Numerador.ToString();
txtDenominador3.Text = miRacional1.Denominador.ToString();
}

private void Button6_Click(object sender, EventArgs e)


{
Operación.Text = "- Parameter";
//Cargo al formulario los constructores por Parametros
miRacional1.Numerador = int.Parse(txtNumerador.Text);
miRacional1.Denominador = int.Parse(txtDenominador.Text);
//Llamo resta y lo cargo con el valor del segundo fraccionario
miRacional1.resta(int.Parse(txtNumerador2.Text), int.Parse(txtDenominador2.Text));
//Cargo al formulario las respuesta de la operación
txtNumerador3.Text = miRacional1.Numerador.ToString();
txtDenominador3.Text = miRacional1.Denominador.ToString();
}

private void Button7_Click(object sender, EventArgs e)


{
Operación.Text = "* Parameter";
//Cargo al formulario los constructores por Parametros
miRacional1.Numerador = int.Parse(txtNumerador.Text);
miRacional1.Denominador = int.Parse(txtDenominador.Text);
//Llamo multiplicación y lo cargo con el valor del segundo fraccionario
miRacional1.multiplicacion(int.Parse(txtNumerador2.Text),
int.Parse(txtDenominador2.Text));
//Cargo al formulario las respuesta de la operación
txtNumerador3.Text = miRacional1.Numerador.ToString();
txtDenominador3.Text = miRacional1.Denominador.ToString();
}

private void Button8_Click(object sender, EventArgs e)


{
Operación.Text = "/ Parameter";
//Cargo al formulario los constructores por Parametros
miRacional1.Numerador = int.Parse(txtNumerador.Text);
miRacional1.Denominador = int.Parse(txtDenominador.Text);
//Llamo división y lo cargo con el valor del segundo fraccionario
miRacional1.division(int.Parse(txtNumerador2.Text), int.Parse(txtDenominador2.Text));
//Cargo al formulario las respuesta de la operación
txtNumerador3.Text = miRacional1.Numerador.ToString();
txtDenominador3.Text = miRacional1.Denominador.ToString();
}

private void Button9_Click(object sender, EventArgs e)


{
MessageBox.Show("Por Defaul el primer fraccionario es 2/3. Por Parameter el primer
fraccionario es el ingresado");
}
}
}
Formulario
 Crea una clase Cuenta (bancaria) con atributos para el número de cuenta (un entero
largo), el DNI del cliente (otro entero largo), el saldo actual y el interés anual que se aplica
a la cuenta (porcentaje). Define en la clase los siguientes métodos:
o Constructor por defecto y constructor con DNI, saldo e interés
o Accedentes y mutadores. Para el número de cuenta no habrá mutador.
o actualizarSaldo(): actualizará el saldo de la cuenta aplicándole el interés diario
(interés anual dividido entre 365 aplicado al saldo actual).
Análisis del problema:
El ejercicio planteado tiene tres etapas, la primera tiene que ver con la conversión de interés
nominal anual capitalizable diario a efectivo anual; luego de efectivo anual a efectivo diario.
Esta hace que la variable número de días, cobre importancia dentro de nuestro programa. La
última etapa tiene que ver con el cálculo del valor futuro
a. Formula de conversión de interés nominal anual capitalizable diario a efectivo anual
𝑖𝑁𝐴 365
𝑖𝐸𝐴 = (1 + ) −1
365
b. Formula de conversión de efectivo anual a efectivo diario
1 + 𝑖𝐸𝐴 = (1 + 𝑖𝐸𝐷 )365
1
(1 + 𝑖𝐸𝐴 )365 = 1 + 𝑖𝐸𝐷
1
𝑖𝐸𝐷 = (1 + 𝑖𝐸𝐴 )365 − 1
1
𝑖𝑁𝐴 365 365
𝑖𝐸𝐷 = (1 + (1 + ) − 1) −1
365
1
𝑖𝑁𝐴 365 365
𝑖𝐸𝐷 = ( (1 + ) ) −1
365
𝑖𝑁𝐴
𝑖𝐸𝐷 =
365
c. Calculo del valor futuro (Saldo actual)
𝑖𝑁𝐴 𝑛𝑢𝑚𝐷𝑖𝑎
𝑉𝐹 = 𝑉𝑝 (1 + )
365

En la grabación nuestro tutor plantea que para facilitar el análisis se supondrá que es un CDT, por
lo que el saldo inicial es la única consignación, que se capitalizara a diario.
𝑖𝑁𝑜𝑚𝐴𝑛𝑢 𝑛𝑢𝑚𝐷𝑖𝑎
𝑆𝑎𝑙𝑑𝑜 = 𝑆𝑎𝑙𝑑𝑜 (1 + )
365
 Declaración de la clase Cuenta en C# (biblioteca de clases .Net Framework)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace capaLogica2
{
public class Cuenta
{
/*La clase la trabajo como Biblioteca de Clases.Netframe*/
//Declaración de los atributos
private int numCuenta;
private int numDni;
private double saldo;
private double iNomAnu;
private double numDia;
private string result;
//Declaración de las operaciones, ó, metodos de la Clase Cuenta

/* Establecemos comunicación entre la aplicación(Main) y la clase(Cuenta)


Defino los metodos get y set usando insertar fragmento de codigo_propfull*/

public int NumCuenta


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

public int NumDni


{
get { return numDni; }
set { numDni = value; }
}
public double Saldo
{
get { return saldo; }
set { saldo = value; }
}
public double INomAnu
{
get { return iNomAnu; }
set { iNomAnu = value; }
}
public double NumDia
{
get { return numDia; }
set { numDia = value; }
}
/*Declaración de los metodos constructores (un constructor se utiliza sólo cuando
se crea un objeto para inicializar los datos de éste):*/

/*Metodo Constructor por Defecto: inicializo los atributos


desde Cuenta(clase)*/
public Cuenta()
{
this.numCuenta = 10001;
this.numDni = 13724402;
this.saldo = 10000000;
this.iNomAnu = 0.3;
this.numDia = 360;
}
/*Metodo Constructor por Parametros: inicializo los atributos desde
Main(aplicación)*/
public Cuenta(int numDni, double saldo, double iNomAnu)
{
this.numDni = numDni;
this.saldo = saldo;
this.iNomAnu = iNomAnu;
}
public string actualizarSaldo()
{
result = (saldo * Math.Pow(1 + (iNomAnu / 365), numDia)).ToString();
return result;
}

}
}
 Declaración de la clase Form1 en C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using capaLogica2;

namespace WF_Cuenta
{
public partial class Form1 : Form
{
private Cuenta miCuenta = new Cuenta();

public Form1()
{
InitializeComponent();
}

private void Button1_Click(object sender, EventArgs e)


{

textBox1.Text = miCuenta.NumCuenta.ToString();
textBox2.Text = miCuenta.NumDni.ToString();
textBox3.Text = miCuenta.Saldo.ToString();
textBox4.Text = miCuenta.INomAnu.ToString();
textBox5.Text = miCuenta.NumDia.ToString();
textBox6.Text = miCuenta.actualizarSaldo();
}

private void Button2_Click(object sender, EventArgs e)


{
textBox1.Text = miCuenta.NumCuenta.ToString();
miCuenta.NumDni = int.Parse(textBox2.Text);
miCuenta.Saldo = double.Parse(textBox3.Text);
miCuenta.INomAnu = double.Parse(textBox4.Text);
miCuenta.NumDia = double.Parse(textBox5.Text);
textBox6.Text = miCuenta.actualizarSaldo();
}
}
}
Formulario

Calculo Predefinido
Calculo Parametrizado
 Desarrolla una clase Cafetera con atributos _capacidadMaxima (la cantidad máxima de
café que puede contener la cafetera) y _cantidadActual (la cantidad actual de café que hay
en la cafetera). Implementa, al menos, los siguientes métodos:
1. Constructor predeterminado: establece la capacidad máxima en 1000 (c.c.) y la actual en
cero (cafetera vacía).
2. Constructor con la capacidad máxima de la cafetera; inicializa la cantidad actual de café
igual a la capacidad máxima.
3. Constructor con la capacidad máxima y la cantidad actual. Si la cantidad actual es mayor
que la capacidad máxima de la cafetera, la ajustará al máximo.
Accedentes y mutadores.
1. llenarCafetera(): pues eso, hace que la cantidad actual sea igual a la capacidad.
2. servirTaza(int): simula la acción de servir una taza con la capacidad indicada.
Si la cantidad actual de café “no alcanza” para llenar la taza, se sirve lo que quede.
3. vaciarCafetera(): pone la cantidad de café actual en cero.
4. agregarCafe(int): añade a la cafetera la cantidad de café indicada.
 Declaración de la clase Cafetera en C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ClassLibrary1
{
public class Cafetera
{
//Definición de atributos
private int capacidadMax;
private int cantActual;
private int medidaTaza;
private int medidaCafe;
//Declaración de metodos
//Metodos get y set
public int MedidaCafe
{
get { return medidaCafe; }
set { medidaCafe = value; }
}
public int MedidaTaza
{
get { return medidaTaza; }
set { medidaTaza = value; }
}
public int CantActual
{
get { return cantActual; }
set { cantActual = value; }
}
public int CapacidadMax
{
get { return capacidadMax; }
set { capacidadMax = value; }
}
//Metodos Constructores
public Cafetera()
{
this.capacidadMax = 1000;
this.cantActual = 0;
}
//la cantidad actual de café igual a la capacidad máxima.
public Cafetera(int cantActual1)
{
this.capacidadMax = cantActual1;
}
/*Si la cantidad actual es mayor que la capacidad máxima de la
cafetera, la ajustará al máximo.*/
public Cafetera(int capacidadMaxima1, int cantidadActual1)
{
this.capacidadMax = capacidadMaxima1;
if (cantidadActual1 > capacidadMax)
{
this.cantActual = this.capacidadMax;
}
else
{
this.cantActual = cantidadActual1;
}
}
//Declaración de otras operaciones
public void llenarCafetera()
{
this.cantActual = this.capacidadMax;
}
public void servirTaza(int medidaTaza)
{
if (this.cantActual <= medidaTaza)
{
medidaTaza = this.cantActual;
this.cantActual = 0;
}
else
{
this.cantActual = this.cantActual - medidaTaza;
}
}
public void vaciarCafetera()
{
this.cantActual = 0;
}
public void agregarCafe(int medidaCafe)
{
if (this.capacidadMax <= (medidaCafe + this.cantActual))
{
this.cantActual = this.capacidadMax;
}
else
{
this.cantActual = medidaCafe + this.cantActual;
}
}
}
}
 Declaración de la clase Form1 en C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ClassLibrary1;

namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
private Cafetera miCafetera = new Cafetera();
public Form1()
{
InitializeComponent();
textBox1.Text = miCafetera.CapacidadMax.ToString();
textBox2.Text = miCafetera.CantActual.ToString();
progressBar1.Value = int.Parse(textBox2.Text);
}

private void Button1_Click(object sender, EventArgs e)


{
progressBar1.Value = miCafetera.CantActual;
miCafetera.llenarCafetera();
textBox1.Text = miCafetera.CapacidadMax.ToString();
textBox2.Text = miCafetera.CantActual.ToString();
progressBar1.Value = int.Parse(textBox2.Text);
}

private void Button2_Click(object sender, EventArgs e)


{
progressBar1.Value = miCafetera.CantActual;
miCafetera.servirTaza(int.Parse(textBox3.Text));
textBox1.Text = miCafetera.CapacidadMax.ToString();
textBox2.Text = miCafetera.CantActual.ToString();
progressBar1.Value = int.Parse(textBox2.Text);
}

private void Button3_Click(object sender, EventArgs e)


{
progressBar1.Value = miCafetera.CantActual;
miCafetera.vaciarCafetera();
textBox1.Text = miCafetera.CapacidadMax.ToString();
textBox2.Text = miCafetera.CantActual.ToString();
progressBar1.Value = int.Parse(textBox2.Text);
}

private void Button4_Click(object sender, EventArgs e)


{
progressBar1.Value = miCafetera.CantActual;
miCafetera.agregarCafe(int.Parse(textBox4.Text));
textBox1.Text = miCafetera.CapacidadMax.ToString();
textBox2.Text = miCafetera.CantActual.ToString();
progressBar1.Value = int.Parse(textBox2.Text);
}
}
}

Formulario
Funcionamiento
o Llenar Cafetera

o Servir Taza
o Agregar Café

o Vaciar Cafetera
 PROGRAMA INVENTARIO MCTELL INGENIERIAS
1. FORMULARIO
a. PRINCIPAL

b. PERSONA
i. INGRESAR

ii. MODIFICAR
iii. ELIMINAR

iv. CONSULTAR
v. FORM PERSONA (CAPA PRESENTACIÓN)
using CapaLogica;
using System;
using System.Data;
using System.Windows.Forms;
//using Solucion_Mctell;

namespace CapaPresentacion
{
public partial class Form_Persona : Form
{
private Validar miValidador;
private tb_Persona mitb_Persona;
private DataTable miTabla;
public Form_Persona()
{
InitializeComponent();
miValidador = new Validar();
mitb_Persona = new tb_Persona();
miTabla = new DataTable();
dataGridView1.DataSource = mitb_Persona.consultarPersonasPA();
formatodataGridView();
}

private void Form_Persona_Load(object sender, EventArgs e)


{

}
public bool validarFormulario()
{
errorProvider1.Clear();
if (!miValidador.validarCedula(textBox1.Text))
{
errorProvider1.SetError(textBox1, "Error Documento Identidad");
return false;
}
if (!miValidador.validarSoloLetras(textBox2.Text))
{
errorProvider1.SetError(textBox2, "Error Nombre");
return false;
}
if (!miValidador.validarSoloLetras(textBox3.Text))
{
errorProvider1.SetError(textBox3, "Error Apellido");
return false;
}
if (!miValidador.validarDireccion(textBox4.Text))
{
errorProvider1.SetError(textBox4, "Error Dirección");
return false;
}
if (!miValidador.validarNumeroCelular(textBox5.Text))
{
errorProvider1.SetError(textBox5, "Error Telefono");
return false;
}
if (!miValidador.validarClave(textBox6.Text))
{
errorProvider1.SetError(textBox6, "Error Clave");
return false;
}
return true;
}

public bool validarcc()


{
errorProvider1.Clear();
if (!miValidador.validarCedula(textBox1.Text))
{
errorProvider1.SetError(textBox1, "Error Documento Identidad");
return false;
}
return true;
}

public void formatodataGridView()


{
dataGridView1.Columns["claveIngreso"].Visible = false;

dataGridView1.Columns["idPersona"].HeaderText = "Cedula";
dataGridView1.Columns["nombre"].HeaderText = "Nombre";
dataGridView1.Columns["apellido"].HeaderText = "Apellido";
dataGridView1.Columns["direccion"].HeaderText = "Dirección";
dataGridView1.Columns["telefono"].HeaderText = "Teléfono";
dataGridView1.Columns["tipoPersona"].HeaderText = "Grupo";
}
private void Button1_Click(object sender, EventArgs e)
{
if (validarFormulario())
{
MessageBox.Show("Formulario válido!!");
mitb_Persona.IdPersona = textBox1.Text;
mitb_Persona.Nombre = textBox2.Text;
mitb_Persona.Apellido = textBox3.Text;
mitb_Persona.Direccion = textBox4.Text;
mitb_Persona.Telefono = textBox5.Text;
mitb_Persona.TipoPersona = comboBox1.Text;
mitb_Persona.ClaveIngreso = textBox6.Text;

if (mitb_Persona.insertarTb_PersonaPA() >= 0)
{
MessageBox.Show("Datos actualizados Correctamente!!");
dataGridView1.DataSource = mitb_Persona.consultarPersonasPA();
formatodataGridView();
}
else
{
MessageBox.Show("No se actualizaron los datos");
}
}
}

private void Button2_Click(object sender, EventArgs e)


{
if (validarFormulario() == true)
{
MessageBox.Show("Formulario válido!!");
mitb_Persona.IdPersona = textBox1.Text;
mitb_Persona.Nombre = textBox2.Text;
mitb_Persona.Apellido = textBox3.Text;
mitb_Persona.Direccion = textBox4.Text;
mitb_Persona.Telefono = textBox5.Text;
mitb_Persona.TipoPersona = comboBox1.Text;
mitb_Persona.ClaveIngreso = textBox6.Text;

if (mitb_Persona.modificarTb_PersonaPA() >= 0)
{
MessageBox.Show("Datos actualizados Correctamente!!");
dataGridView1.DataSource = mitb_Persona.consultarPersonasPA();
formatodataGridView();
}
else
{
MessageBox.Show("No se actualizaron los datos");
}
}

private void Button4_Click(object sender, EventArgs e)


{
if (validarcc())
{
MessageBox.Show("Formulario válido!!");
mitb_Persona.IdPersona = textBox1.Text;
dataGridView1.DataSource = mitb_Persona.buscarTb_PersonaPA();
//formatodataGridView();
}

private void DataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)


{
var senderGrid = (DataGridView)sender;
if (senderGrid.Columns[e.ColumnIndex] is DataGridViewButtonColumn && e.RowIndex >=0)
{
mitb_Persona.idPersona =
dataGridView1.Rows[e.RowIndex].Cells["idPersona"].Value.ToString();
mitb_Persona.nombre =
dataGridView1.Rows[e.RowIndex].Cells["nombre"].Value.ToString();
mitb_Persona.apellido =
dataGridView1.Rows[e.RowIndex].Cells["apellido"].Value.ToString();
mitb_Persona.direccion =
dataGridView1.Rows[e.RowIndex].Cells["direccion"].Value.ToString();
mitb_Persona.telefono =
dataGridView1.Rows[e.RowIndex].Cells["telefono"].Value.ToString();
mitb_Persona.tipoPersona =
dataGridView1.Rows[e.RowIndex].Cells["tipoPersona"].Value.ToString();
mitb_Persona.claveIngreso =
dataGridView1.Rows[e.RowIndex].Cells["claveIngreso"].Value.ToString();

textBox1.Text = mitb_Persona.idPersona;
textBox2.Text = mitb_Persona.nombre;
textBox3.Text = mitb_Persona.apellido;
textBox4.Text = mitb_Persona.direccion;
textBox5.Text = mitb_Persona.telefono;
comboBox1.Text = mitb_Persona.tipoPersona;
textBox6.Text = mitb_Persona.claveIngreso;
}
}

private void Button3_Click(object sender, EventArgs e)


{
mitb_Persona.borrarTb_PersonaPA();
MessageBox.Show("Datos borrados Correctamente!!");
dataGridView1.DataSource = mitb_Persona.consultarPersonasPA();
}
}
}
vi. Tb_Persona (CAPA LOGICA)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//using agregados
using System.Data;
using CapaConexion;

namespace CapaLogica
{
public class tb_Persona
{
private Conexion miConexion;
//Definición atributos tabla Persona
public string idPersona;
public string nombre;
public string apellido;
public string direccion;
public string telefono;
public string tipoPersona;
public string claveIngreso;
//Declaración Metodos Get y Set

public Conexion MiConexion


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

public string ClaveIngreso


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

public string TipoPersona


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

public string Telefono


{
get { return telefono; }
set { telefono = value; }
}
public string Direccion
{
get { return direccion; }
set { direccion = value; }
}

public string Apellido


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

public string Nombre


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

public string IdPersona


{
get { return idPersona; }
set { idPersona = value; }
}
//Declaración Metodo Constructor sin parametros
public tb_Persona()
{
miConexion = new Conexion();
//Definición atributos tabla Persona
this.idPersona = string.Empty;
this.nombre = string.Empty;
this.apellido = string.Empty;
this.direccion = string.Empty;
this.telefono = string.Empty;
this.tipoPersona = string.Empty;
this.claveIngreso = string.Empty;
}
//Insertar un nuevo dato en la base de datos
public int insertarTb_PersonaPA()
{
string[] nomParametros = { "idPersona", "nombre", "apellido", "direccion",
"telefono", "tipoPersona", "claveIngreso"};
string[] valores = { this.idPersona, this.nombre, this.apellido, this.direccion,
this.telefono, this.tipoPersona, this.claveIngreso};
return miConexion.ejecutarDMLPA("inPersona", nomParametros, valores);
}
public int modificarTb_PersonaPA()
{
string[] nomParametros = { "idPersona", "nombre", "apellido", "direccion",
"telefono", "tipoPersona", "claveIngreso"};
string[] valores = { this.idPersona, this.nombre, this.apellido, this.direccion,
this.telefono, this.tipoPersona, this.claveIngreso};
return miConexion.ejecutarDMLPA("modifPersona", nomParametros, valores);
}

public int borrarTb_PersonaPA()


{
string[] nomParametros = { "idPersona", "nombre", "apellido", "direccion",
"telefono", "tipoPersona", "claveIngreso"};
string[] valores = { this.idPersona, this.nombre, this.apellido, this.direccion,
this.telefono, this.tipoPersona, this.claveIngreso};
return miConexion.ejecutarDMLPA("borrarPersona", nomParametros, valores);
}
public DataTable buscarTb_PersonaPA()
{
string[] nomParametros = { "idPersona" };
string[] valores = { this.idPersona };
return miConexion.ejecutarConsultaParametro("buscarPersona", nomParametros, valores);
}
public DataTable consultarPersonasPA()
{
return miConexion.ejecutarConsultaPA("conPersona");
}

}
}
c. ELEMENTO

i. INGRESAR
ii. MODIFICAR

iii. ELIMINAR
iv. CONSULTAR

v. FORM ELEMENTO (CAPA PRESENTACIÓN)


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using CapaLogica;

namespace CapaPresentacion
{
public partial class Form_Elemento : Form
{
private Validar miValidador;
private tb_Elemento mitb_Elemento;
public Form_Elemento()
{
InitializeComponent();
miValidador = new Validar();
mitb_Elemento = new tb_Elemento();
dataGridView1.DataSource = mitb_Elemento.consultarElementoPA();
//formatodataGridView();
}
public bool validarFormulario()
{
errorProvider1.Clear();

if (!miValidador.validarClave(textBox2.Text))
{
errorProvider1.SetError(textBox2, "Error Id");
return false;
}
if (!miValidador.validarDireccion(textBox3.Text))
{
errorProvider1.SetError(textBox3, "Error Referencia");
return false;
}
if (!miValidador.validarDireccion(textBox4.Text))
{
errorProvider1.SetError(textBox4, "Error Marca");
return false;
}
if (!miValidador.validarDireccion(textBox5.Text))
{
errorProvider1.SetError(textBox5, "Error Localización");
return false;
}

return true;
}

private void Button1_Click(object sender, EventArgs e)


{
if (validarFormulario())
{
MessageBox.Show("Formulario válido!!");
mitb_Elemento.IdElemento = textBox2.Text;
mitb_Elemento.Referencia = textBox3.Text;
mitb_Elemento.Marca = textBox4.Text;
mitb_Elemento.Localizacion = textBox5.Text;

if (mitb_Elemento.insertarTb_ElementoPA() > 0)
{
MessageBox.Show("Datos actualizados Correctamente!!");
dataGridView1.DataSource = mitb_Elemento.consultarElementoPA();
}
else
{
MessageBox.Show("No se actualizaron los datos");
}
}

private void Button2_Click(object sender, EventArgs e)


{
if (validarFormulario() == true)
{
MessageBox.Show("Formulario válido!!");
mitb_Elemento.idElemento = textBox2.Text;
mitb_Elemento.referencia = textBox3.Text;
mitb_Elemento.marca = textBox4.Text;
mitb_Elemento.localizacion = textBox5.Text;

if (mitb_Elemento.modificarTb_ElementoPA() >= 0)
{
MessageBox.Show("Datos actualizados Correctamente!!");
dataGridView1.DataSource = mitb_Elemento.consultarElementoPA();
//formatodataGridView();
}
else
{
MessageBox.Show("No se actualizaron los datos");
}
}
}

private void DataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)


{
var senderGrid = (DataGridView)sender;
if (senderGrid.Columns[e.ColumnIndex] is DataGridViewButtonColumn && e.RowIndex >=
0)
{
mitb_Elemento.idElemento =
dataGridView1.Rows[e.RowIndex].Cells["idElemento"].Value.ToString();
mitb_Elemento.referencia =
dataGridView1.Rows[e.RowIndex].Cells["referencia"].Value.ToString();
mitb_Elemento.marca =
dataGridView1.Rows[e.RowIndex].Cells["marca"].Value.ToString();
mitb_Elemento.localizacion =
dataGridView1.Rows[e.RowIndex].Cells["localizacion"].Value.ToString();

textBox2.Text = mitb_Elemento.idElemento;
textBox3.Text = mitb_Elemento.referencia;
textBox4.Text = mitb_Elemento.marca;
textBox5.Text = mitb_Elemento.localizacion;
}
}

private void Button3_Click(object sender, EventArgs e)


{
mitb_Elemento.borrarTb_ElementoPA();
MessageBox.Show("Datos borrados Correctamente!!");
dataGridView1.DataSource = mitb_Elemento.consultarElementoPA();
}

private void Button4_Click(object sender, EventArgs e)


{
if (miValidador.validarClave(textBox2.Text))
{
MessageBox.Show("Formulario válido!!");
mitb_Elemento.IdElemento = textBox2.Text;
dataGridView1.DataSource = mitb_Elemento.buscarTb_ElementoPA();
//formatodataGridView();
}
}
}
}
vi. TB_ELEMENTO (CAPA LOGICA)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//using insertados
using System.Data;
using CapaConexion;

namespace CapaLogica
{
public class tb_Elemento
{
public Conexion miConexion;
//Definición de los atributos de la tabla
public string idElemento;
public string referencia;
public string marca;
public string localizacion;
//Definición Metodos Get y Set
public Conexion MiConexion
{
get { return miConexion; }
set { miConexion = value; }
}
public string Localizacion
{
get { return localizacion; }
set { localizacion = value; }
}

public string Marca


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

public string Referencia


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

public string IdElemento


{
get { return idElemento; }
set { idElemento = value; }
}
//Definición metodo constructor por defecto sin parametros
public tb_Elemento()
{
miConexion = new Conexion();
this.idElemento = string.Empty;
this.referencia = string.Empty;
this.marca = string.Empty;
this.localizacion = string.Empty;
}
//Insertar un nuevo dato en la base de datos

public int insertarTb_ElementoPA()


{
string[] nomParametros = { "idElemento", "referencia", "marca", "localizacion"};
string[] valores = { this.idElemento, this.referencia, this.marca, this.localizacion};
return miConexion.ejecutarDMLPA("inElemento", nomParametros, valores);
}

public DataTable consultarElementoPA()


{
return miConexion.ejecutarConsultaPA("conElemento");
}

public int modificarTb_ElementoPA()


{
string[] nomParametros = { "idElemento", "referencia", "marca", "localizacion" };
string[] valores = { this.idElemento, this.referencia, this.marca, this.localizacion };
return miConexion.ejecutarDMLPA("modifElemento", nomParametros, valores);
}
//borrarTb_ElementoPA
public int borrarTb_ElementoPA()
{
string[] nomParametros = { "idElemento", "referencia", "marca", "localizacion" };
string[] valores = { this.idElemento, this.referencia, this.marca, this.localizacion };
return miConexion.ejecutarDMLPA("borrarElemento", nomParametros, valores);
}
public DataTable buscarTb_ElementoPA()
{
string[] nomParametros = { "idElemento" };
string[] valores = { this.idElemento };
return miConexion.ejecutarConsultaParametro("buscarElemento", nomParametros,
valores);
}
}
}
d. INGRESO ELEMENTO

i. INGRESAR
ii. MODIFICAR

iii. ELIMINAR
iv. CONSULTAR

v. FORM_INGELEMENTO (CAPA PRESENTACIÓN)


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using CapaLogica;

namespace CapaPresentacion
{
public partial class Form_IngElemento : Form
{
private Validar miValidador;
private tb_IngElemento mitb_IngElemento;

public Form_IngElemento()
{
InitializeComponent();
miValidador = new Validar();
mitb_IngElemento = new tb_IngElemento();
dataGridView1.DataSource = mitb_IngElemento.consultarIngElementoPA();
}

public bool validarFormulario()


{
errorProvider1.Clear();

if (!miValidador.validarClave(textBox1.Text))
{
errorProvider1.SetError(textBox1, "Error No. Orden Compra");
return false;
}
if (!miValidador.validarCantidad(textBox2.Text))
{
errorProvider1.SetError(textBox2, "Error Cantidad");
return false;
}
if (!miValidador.validarClave(textBox3.Text))
{
errorProvider1.SetError(textBox3, "Error Id. Elemento");
return false;
}
if (!miValidador.validarCantidad(textBox4.Text))
{
errorProvider1.SetError(textBox4, "Error Cantidad");
return false;
}
if (!miValidador.validarCedula(textBox5.Text))
{
errorProvider1.SetError(textBox5, "Error Doc. Identidad");
return false;
}
return true;
}

private void Button1_Click(object sender, EventArgs e)


{
if (validarFormulario())
{
MessageBox.Show("Formulario válido!!");
mitb_IngElemento.OrdenCompra = textBox1.Text;
mitb_IngElemento.CodElemento = textBox3.Text;
mitb_IngElemento.CantIng = int.Parse(textBox4.Text);
mitb_IngElemento.IdPersonaIng = textBox5.Text;
mitb_IngElemento.FechaIng = dateTimePicker1.Text;
mitb_IngElemento.SumaIngreso = int.Parse(textBox2.Text);
if (mitb_IngElemento.insertarTb_IngElementoPA() >= 0)
{
MessageBox.Show("Datos actualizados Correctamente!!");
dataGridView1.DataSource = mitb_IngElemento.consultarIngElementoPA();
}
else
{
MessageBox.Show("No se actualizaron los datos");
}
}
}

private void Button2_Click(object sender, EventArgs e)


{
if (validarFormulario() == true)
{
MessageBox.Show("Formulario válido!!");
mitb_IngElemento.OrdenCompra = textBox1.Text;
mitb_IngElemento.CodElemento = textBox3.Text;
mitb_IngElemento.CantIng = int.Parse(textBox4.Text);
mitb_IngElemento.IdPersonaIng = textBox5.Text;
mitb_IngElemento.FechaIng = dateTimePicker1.Text;
mitb_IngElemento.SumaIngreso = int.Parse(textBox2.Text);

if (mitb_IngElemento.modificarTb_IngElementoPA() >= 0)
{
MessageBox.Show("Datos actualizados Correctamente!!");
dataGridView1.DataSource = mitb_IngElemento.consultarIngElementoPA();
}
else
{
MessageBox.Show("No se actualizaron los datos");
}
}
}

private void Form_IngElemento_Load(object sender, EventArgs e)


{

private void DataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)


{
var senderGrid = (DataGridView)sender;
if (senderGrid.Columns[e.ColumnIndex] is DataGridViewButtonColumn && e.RowIndex >=
0)
{
mitb_IngElemento.OrdenCompra =
dataGridView1.Rows[e.RowIndex].Cells["ordenCompra"].Value.ToString();
mitb_IngElemento.CodElemento =
dataGridView1.Rows[e.RowIndex].Cells["codElemento"].Value.ToString();
mitb_IngElemento.CantIng =
int.Parse(dataGridView1.Rows[e.RowIndex].Cells["cantIng"].Value.ToString());
mitb_IngElemento.IdPersonaIng =
dataGridView1.Rows[e.RowIndex].Cells["idPersonaIng"].Value.ToString();
//mitb_IngElemento.FechaIng =
dataGridView1.Rows[e.RowIndex].Cells["fechaIng"].Value.ToString();
mitb_IngElemento.SumaIngreso =
int.Parse(dataGridView1.Rows[e.RowIndex].Cells["sumaIngreso"].Value.ToString());

textBox1.Text = mitb_IngElemento.OrdenCompra;
textBox3.Text = mitb_IngElemento.CodElemento;
textBox4.Text = mitb_IngElemento.CantIng.ToString();
textBox5.Text = mitb_IngElemento.IdPersonaIng;
//dateTimePicker1.Text = mitb_IngElemento.FechaIng;
textBox2.Text = mitb_IngElemento.SumaIngreso.ToString();
}
}

private void Button3_Click(object sender, EventArgs e)


{
mitb_IngElemento.borrarTb_IngElementoPA();
MessageBox.Show("Datos borrados Correctamente!!");
dataGridView1.DataSource = mitb_IngElemento.consultarIngElementoPA();
}

private void Button4_Click(object sender, EventArgs e)


{
if (miValidador.validarClave(textBox1.Text))
{
MessageBox.Show("Formulario válido!!");
mitb_IngElemento.OrdenCompra = textBox1.Text;
dataGridView1.DataSource = mitb_IngElemento.buscarTb_IngElementoPA();
//formatodataGridView();
}
}
}
}
vi. TB_INGELEMENTO (CAPA PRESENTACIÓN)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CapaConexion;
using System.Data;

namespace CapaLogica
{
public class tb_IngElemento
{
public Conexion miConexion;
//Definición atributos tabla IngElemento
public string ordenCompra;
public string codElemento;
public string fechaIng;
public int cantIng;
public string idPersonaIng;
public int sumaIngreso;
public Conexion MiConexion
{
get { return miConexion; }
set { miConexion = value; }
}
public int SumaIngreso
{
get { return sumaIngreso; }
set { sumaIngreso = value; }
}

public string IdPersonaIng


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

public int CantIng


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

public string FechaIng


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

public string CodElemento


{
get { return codElemento; }
set { codElemento = value; }
}
public string OrdenCompra
{
get { return ordenCompra; }
set { ordenCompra = value; }
}
//Declaración Metodo Constructor por Defecto sin parametros
public tb_IngElemento()
{
miConexion = new Conexion();
this.ordenCompra = string.Empty;
this.codElemento = string.Empty;
this.fechaIng = string.Empty;
this.cantIng = 0;
this.idPersonaIng = string.Empty;
this.sumaIngreso = 0;
}
public DataTable consultarIngElementoPA()
{
return miConexion.ejecutarConsultaPA("consulIngElemento");
}
//Insertar un nuevo dato en la base de datos
public int insertarTb_IngElementoPA()
{
string[] nomParametros = { "ordenCompra", "codElemento", "fechaIng", "cantIng",
"idPersonaIng", "sumaIngreso"};
string[] valores = { this.ordenCompra, this.codElemento, this.fechaIng,
this.cantIng.ToString(),
this.idPersonaIng, this.sumaIngreso.ToString()};
return miConexion.ejecutarDMLPA("inIngElemento", nomParametros, valores);
}
public int modificarTb_IngElementoPA()
{
string[] nomParametros = { "ordenCompra", "codElemento", "fechaIng", "cantIng",
"idPersonaIng", "sumaIngreso"};
string[] valores = { this.ordenCompra, this.codElemento, this.fechaIng,
this.cantIng.ToString(),
this.idPersonaIng, this.sumaIngreso.ToString()};
return miConexion.ejecutarDMLPA("modifIngElemento", nomParametros, valores);
}
public int borrarTb_IngElementoPA()
{
string[] nomParametros = { "ordenCompra", "codElemento" };
string[] valores = { this.ordenCompra, this.codElemento };
return miConexion.ejecutarDMLPA("borrarIngElemento", nomParametros, valores);
}
public DataTable buscarTb_IngElementoPA()
{
string[] nomParametros = { "ordenCompra" };
string[] valores = { this.ordenCompra };
return miConexion.ejecutarConsultaParametro("buscarIngElemento", nomParametros,
valores);
}
}
}

PROCEDIMIENTOS ALMACENADO

OTROS FORMULARIOS
VALIDACIÓN DE DATOS
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//using CapaConexion;

using System.Text.RegularExpressions;

namespace CapaLogica
{
public class Validar
{
private Regex rgx;

public bool validarNIT(string cadena)


{
// El NIT debe cumplir con 00000000???-0?
// empezar con número de 8 a 11 dígitos, seguido de '-' y termina con
// número de 1 o 2 dígitos
rgx = new Regex(@"\A[0-9]{8,11}(-)[0-9]{1,2}\Z");
if (rgx.IsMatch(cadena))
return true;
return false;
}
public bool validarSoloLetras(string cadena)
{
// SoloLetras debe cumplir con:
// Empieza con letra en mayúscula A-Z
// Debe seguir con a-z,A-Z," ",áéíóúñÑ con mínimo dos caracteres, máximo 24 caracteres

rgx = new Regex(@"\A[A-Z]{1}[a-zA-Z\sáéíóúñÑ ]{2,24}\Z");


if (rgx.IsMatch(cadena))
return true;
return false;
}
public bool validarCorreoElectronico(string cadena)
{
rgx = new Regex(@"^[\w!#$%&'*+\-/=?\^_`{|}~]+(\.[\w!#$%&'*+\-/=?\^_`{|}~]+)*"
+ "@"
+ @"((([\-\w]+\.)+[a-zA-Z]{2,4})|(([0-9]{1,3}\.){3}[0-9]{1,3}))$");
if (rgx.IsMatch(cadena))
return true;
return false;
}
public bool validarTelefonoFijo(string cadena)
{
// TelefonoFijo debe cumplir con: +57 0 0000000
// Inicia con +57, sigue con " ",continúa con número de 1 dígito, sigue con " "
// y termina con número de 7 dígitos

rgx = new Regex(@"\A(\+57)(\s)[0-9]{1}(\s)[0-9]{7}\z");


if (rgx.IsMatch(cadena))
return true;
return false;
}

public bool validarCantidad(string cadena)


{
rgx = new Regex(@"\A[0-9]{1,4}\Z");
if (rgx.IsMatch(cadena))
return true;
return false;
}

public bool validarCedula(string cadena)


{
// El cc debe cumplir con 0000000000???
// empezar con número de 8 a 10 dígitos
rgx = new Regex(@"\A[0-9]{8,11}\Z");
if (rgx.IsMatch(cadena))
return true;
return false;
}

public bool validarNumeroCelular(string cadena)


{
rgx = new Regex(@"\A[0-9]{10}\Z");
if (rgx.IsMatch(cadena))
return true;
return false;
}

public bool validarClave(string cadena)


{
rgx = new Regex(@"\A[0-9]{4}\Z");
if (rgx.IsMatch(cadena))
return true;
return false;
}

public bool validarDireccion(string cadena)


{
rgx = new Regex(@"\A[A-Za-z\s#0.123456789áéíóúñÑ ]{1,24}\Z");
if (rgx.IsMatch(cadena))
return true;
return false;
}

}
}

CAPA CONEXIÓN
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.Data;
using System.Data.SqlClient;
using MySql.Data.MySqlClient;

namespace CapaConexion
{
public class Conexion
{
private string connectionString;
private MySqlCommand comando;
private MySqlConnection databaseConnection;
public Conexion()
{
//1
connectionString =
"datasource=127.0.0.1;port=3306;username=root;password=;database=mctellinventario;Allow
Zero Datetime=True;Convert Zero Datetime=True;";
//connectionString =
"datasource=127.0.0.1;port=3388;username=root;password=;database=mctellinventario;";
databaseConnection = new MySqlConnection(connectionString);
}

public DataTable ejecutarConsultaPA(string nomPA)


{
//me permite consultar tabla, tablas diferentes, o, combinación de tablas
DataTable miTabla = new DataTable();

comando = new MySqlCommand(nomPA, databaseConnection);

comando.CommandType = CommandType.StoredProcedure;
try
{
databaseConnection.Open();
MySqlDataReader reader = comando.ExecuteReader();
miTabla.Load(reader);
databaseConnection.Close();
}
catch (Exception ex)
{
databaseConnection.Close();
}
return miTabla;
}
//ejecutarConsultaParametro
public DataTable ejecutarConsultaParametro(string nomPA, string[] nomParametros, string[]
valores)
{
//me permite consultar tabla, tablas diferentes, o, combinación de tablas
DataTable miTabla = new DataTable();
int i = 0;
comando = new MySqlCommand(nomPA, databaseConnection);

comando.CommandType = CommandType.StoredProcedure;
comando.CommandText = nomPA;
foreach(string parametro in nomParametros)
{
comando.Parameters.AddWithValue(parametro, valores[i]);
i++;
}
try
{
databaseConnection.Open();
MySqlDataReader reader = comando.ExecuteReader();
miTabla.Load(reader);
databaseConnection.Close();
}
catch (Exception ex)
{
databaseConnection.Close();
}
return miTabla;
}
public int ejecutarDMLPA(string nomPA, string[] nomParametros, string[] valores)
{
/*Con este metodo solo puedo hacer insercion, actualización, ó,
* eliminación de registros
*/
comando = new MySqlCommand(nomPA, databaseConnection);
int i = 0;
int filasAfectadas = 0;

//comando.Connection = databaseConnection;
comando.CommandType = CommandType.StoredProcedure;
comando.CommandText = nomPA;
foreach (string parametro in nomParametros)
{
comando.Parameters.AddWithValue(parametro, valores[i]);
i++;
}
try
{
databaseConnection.Open();
filasAfectadas = comando.ExecuteNonQuery();
databaseConnection.Close();
}
catch (SqlException e)
{
databaseConnection.Close();
switch (e.Number)
{
case 2627:
return -1;
default:
return -2;
}
}
return filasAfectadas;
}
/*public int leerDMLPA(string nomPA, string[] nomParametros, string[] valores)
{
//comando.CommandType = CommandType.StoredProcedure;
//comando.CommandText = nomPA;
try
{
databaseConnection.Open();
MySqlCommand comando = new MySqlCommand(nomParametros, valores);
comando.CommandType = CommandType.StoredProcedure;
comando.Parameters.AddWithValue(nomParametros, valores);
MySqlDataReader rdr = comando.ExecuteReader();
while (rdr.Read())
{
Console.WriteLine(rdr[0] + " --- " + rdr[1]);
}
rdr.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
databaseConnection.Close();

}*/
}
}

También podría gustarte