Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

Programacion Orientada a Objetos ????

Sajer

Becerro
Desde
30 Mar 2009
Mensajes
44
Bueno esta es mi duda mucho se habla de la POO pero en verdad la estoy aplicando correctamente no soy un experto programador soy un novatazo, bueno el escenario es el sig desarollo una aplicacion en c# 2005 para una fabrica de maquila de prendas de mezclilla en la cual se manejan diversos departamentos , modelos , lavados etc . y pues defini una clase categoria

HTML:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Windows.Forms;
namespace COC.clases
{
class Categoria
{
SqlConnection ruta;
SqlTransaction transaccion = null;
SqlCommand comando ;
public void guardar( string id, string descripcion, string conexion, string procedimiento) 
{
 
try
 
{ 
ruta= new SqlConnection (conexion );
ruta.Open(); 
comando = new SqlCommand ();
transaccion =ruta.BeginTransaction ();
comando.Connection =ruta;
comando.CommandText =procedimiento ;
comando.CommandType = CommandType.StoredProcedure;
comando.Parameters.AddWithValue("@Id",id );
comando.Parameters.AddWithValue ("@Descripcion",descripcion );
comando.Transaction =transaccion ;
 
comando.ExecuteNonQuery ();
transaccion.Commit ();
 
MessageBox.Show ("Los Datos se guardaron correctamente","Control de Ordenes",MessageBoxButtons.OK, MessageBoxIcon.Information,MessageBoxDefaultButton.Button1 );
} 
catch ( SqlException e )
{
MessageBox.Show ("Ocurrio un Error al intentar abrir la base de datos " ,"Control de Ordenes", MessageBoxButtons .OK, MessageBoxIcon.Error,MessageBoxDefaultButton.Button1 ) ;
}
catch (Exception e)
{
transaccion.Rollback ();
MessageBox.Show("Los Datos no se guardaron","Contro de Ordene",MessageBoxButtons.OK , MessageBoxIcon.Error,MessageBoxDefaultButton.Button1);
}
finally 
{
ruta.Close (); 
ruta.Dispose ();
}
} 
public void eliminar( string id, string conexion , string procedimiento)
{
try 
{ 
ruta= new SqlConnection (conexion );
ruta.Open();
comando = new SqlCommand ();
transaccion =ruta .BeginTransaction ();
comando.Connection =ruta ;
comando.CommandText =procedimiento ;
comando .CommandType = CommandType.StoredProcedure ;
comando .Parameters .AddWithValue("@id",id);
 
comando.Transaction =transaccion ;
comando.ExecuteNonQuery ();
transaccion .Commit ();
MessageBox.Show("Los Datos se eliminaron correctamente", "Control de Ordenes", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); 
}
catch (SqlException e)
{
MessageBox.Show("Ocurrio un Error al intentar abrir la base de datos ", "Control de Ordenes", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
}
catch (Exception e)
{
transaccion.Rollback();
MessageBox.Show("Los Datos no se eliminaron", "Contro de Ordene", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
}
finally 
{
ruta.Close();
ruta.Dispose();
}
}
public void actualizar (string id, string descripcion , string conexion, string procedimiento)
{
try
{
ruta = new SqlConnection(conexion);
ruta.Open();
comando = new SqlCommand();
transaccion = ruta.BeginTransaction();
comando.Connection = ruta;
comando.CommandText = procedimiento;
comando.CommandType = CommandType.StoredProcedure;
comando.Parameters.AddWithValue("@Id", id);
comando.Parameters.AddWithValue("@Descripcion", descripcion);
comando.Transaction = transaccion;
comando.ExecuteNonQuery();
transaccion.Commit();
MessageBox.Show("Los Datos se actualizaron correctamente", "Control de Ordenes", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
}
catch (SqlException e)
{
MessageBox.Show("Ocurrio un Error al intentar abrir la base de datos ", "Control de Ordenes", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
}
catch (Exception e)
{
transaccion.Rollback();
MessageBox.Show("Los Datos no se actualizaron", "Contro de Ordene", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
}
finally
{
ruta.Close();
ruta.Dispose();
}
}
public int generaCodigo( string conexion, string procedimiento )
{
int contador = 0;
int auxiliar =0;
ruta = new SqlConnection (conexion );
comando = new SqlCommand ();
SqlDataReader lector ;
 
try 
{
ruta.Open ();
comando.Connection =ruta ;
comando.CommandText =procedimiento;
comando.CommandType = CommandType .StoredProcedure ;
lector = comando.ExecuteReader ();
if (lector.HasRows ==false ) 
{
contador =1;
return contador ;
}
else
{
auxiliar =1;
while (lector .Read ())
{
contador =lector.GetInt32 (0);
if ( contador!=auxiliar )
{
break ;
}
auxiliar= auxiliar +1;
}
}
ruta.Close ();
ruta.Dispose ();
comando.Dispose ();
}
catch ( SqlException e )
{
MessageBox.Show("Ocurrio un Error al intentar abrir la base de datos " , "Control de Ordenes", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
MessageBox .Show (e.ToString ());
}
catch (Exception e )
{
MessageBox.Show("Ocurrio un error", "Control de Ordenes", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
}
finally
{
ruta.Close();
ruta.Dispose();
}
return auxiliar ;
}
public DataSet mostrar( string conexion, string procedimiento)
{
ruta = new SqlConnection (conexion );
comando = new SqlCommand ();
SqlDataAdapter adaptador = new SqlDataAdapter (comando );
DataSet contenedor = new DataSet ();
try 
{
comando .Connection = ruta ;
comando.CommandText =procedimiento;
comando .CommandType =CommandType .StoredProcedure;
 
adaptador .Fill (contenedor );
return contenedor ;
}
catch (SqlException e)
{
MessageBox.Show("Ocurrio un Error al intentar abrir la base de datos ", "Control de Ordenes", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
}
return null ;
}
}
}
con varios metodos eliminar , guardar actualizar , mostrar datos y demas como se ve en la definicon anterior y despues desde un formulario instancio un objeto de esta clase asi:

HTML:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using COC.clases;
namespace COC.form
{
public partial class frmtipodePrenda : frmbase
{
Categoria objTipodePrenda = new Categoria ();
public frmtipodePrenda()
{
InitializeComponent();
}
private void frmtipodePrenda_Load(object sender, EventArgs e)
{
try
{
this.griddatos.DataSource = objTipodePrenda.mostrar(Cadena.Conexion(), "mostrarTipodePrenda").Tables[0];
this.txtnumero.Text = objTipodePrenda.generaCodigo(Cadena.Conexion(), "contarTipodePrenda").ToString();
formato();
this.btnguardar.Enabled = true;
this.btnsalir.Enabled = true;
this.btncambiar.Enabled = false;
this.btneliminar.Enabled = false;
}
catch (NullReferenceException ex)
{
MessageBox.Show("Ocurrio un error", "Contro de Ordenes", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
}
}
private void btnguardar_Click(object sender, EventArgs e)
{
try
{
if (validarDatos() == false)
{
objTipodePrenda.guardar(this.txtnumero.Text, this.txtdescripcion.Text, Cadena.Conexion(), "guardarTipodePrenda");
this.griddatos.DataSource = objTipodePrenda.mostrar(Cadena.Conexion(), "mostrarTipodePrenda").Tables[0];
this.btnnuevo.Enabled = true;
this.txtdescripcion.Enabled = false;
}
else
{
this.txtdescripcion.Text = "";
this.txtdescripcion.Focus();
}
}
catch (Exception ex)
{
MessageBox.Show("Ocurrio un error", "Contro de Ordenes", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
}
}
private void btnnuevo_Click(object sender, EventArgs e)
{
this.txtnumero.Text = objTipodePrenda.generaCodigo(Cadena.Conexion(), "contarTipodePrenda").ToString();
}
private void btneliminar_Click(object sender, EventArgs e)
{
try
{
objTipodePrenda.eliminar(this.txtnumero.Text, Cadena.Conexion(), "eliminarTipodePrenda");
this.txtdescripcion.Enabled = false;
this.griddatos.DataSource = objTipodePrenda.mostrar(Cadena.Conexion(), "mostrarTipodePrenda").Tables[0];
this.txtdescripcion.Text = "";
this.txtdescripcion.Enabled = true;
this.txtdescripcion.Focus();
this.txtnumero.Text = objTipodePrenda.generaCodigo(Cadena.Conexion(), "contarTipodePrenda").ToString();
}
catch (Exception ex)
{
MessageBox.Show("Ocurrio un error al intentar borrar los datos", "Contro de Ordenes", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
}
}
private void btncambiar_Click(object sender, EventArgs e)
{
try
{
if (validarDatos() == false)
{
objTipodePrenda.actualizar(this.txtnumero.Text, this.txtdescripcion.Text, Cadena.Conexion(), "actualizarTipodePrenda");
this.griddatos.DataSource = objTipodePrenda.mostrar(Cadena.Conexion(), "mostrarTipodePrenda").Tables[0];
}
else
{
this.txtdescripcion.Text = "";
this.txtdescripcion.Focus();
}
}
catch (Exception ex)
{
MessageBox.Show("Ocurrio un error al intentar actualizar los datos", "Contro de Ordenes", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
}
}
}
}

mi duda es estoy aplicando la POO o estoy perdido ademas que no se como llamar a las clases o sea que nombre ponerles , bueno espero no sea muy extenso con mi codigo que pegue pero en verdad me gustaria que me digan si voy bien o definitivamente estoy perdido

GRACIAS
 
Volver
Arriba