TransWikia.com

como hacer CRUD para cada formulario en c#?

Stack Overflow en español Asked by Leo Cruz on January 12, 2021

Hola estoy tratando de hacer mi primer programa (UN PUNTO DE VENTA)
y de verdad que necesito de su ayuda.

Lo que quiero saber si debo hacer todos los CRUD de cada formulario en una sola clases o si cada CRUD debe ir en clases diferente? ojo no estoy trabajando con "capas"

En caso de que sea un CRUD por clase, por favor me dicen como se hace.
y a la vez me gustaría saber como se llama la fomar de trabajar en c# cuando
no se trabaja con capas

En caso de que sea un CRUD por clase, por favor me dicen como se hace.
y a la vez me gustaría saber como se llama la fomar de trabajar en c# cuando
no se trabaja con capas

   public void Abrir_conexion()
    {
        con = new SqlConnection("Data Source =.; Initial Catalog = PruebaProcedimiento; Integrated Security = True");
        con.Open();
    }

   
    public void Cerrar_conexion()
    {
        con.Close();
    }

    // LLENANDO UN DATAGRIDVIEW..............................................
    public void Llenando_datagrid( DataGridView datgrid )
    {
        try {

            Abrir_conexion();
            cmd = new SqlCommand("Alumno",con);
            cmd.CommandType = CommandType.StoredProcedure;

            dt = new DataTable();
            da = new SqlDataAdapter(cmd);
            da.Fill(dt);
          
            Cerrar_conexion();
            datgrid.DataSource = dt;
                         
        }          
            catch (Exception ex)
        {
            MessageBox.Show("No se lleno el dataGrid" + ex).ToString();
        }
              
    }

    //GUARDAR..............................................
    public string guardar(string nombre,string apellido,int edad)
    {
       string mensaje = "Nuevo estudiante agregado";

        try
        {
            Abrir_conexion();
      
        cmd = new SqlCommand("SP_Guardar", con);
        cmd.CommandType = CommandType.StoredProcedure;
       
        cmd.Parameters.AddWithValue("@Nombre", nombre).ToString();
        cmd.Parameters.AddWithValue("@Apellido", apellido).ToString();
        cmd.Parameters.AddWithValue("@Edad", Convert.ToInt32(edad));
        cmd.ExecuteNonQuery();
        cmd.Parameters.Clear();
        Cerrar_conexion();
        }
        
        catch (Exception ex)
        {
            MessageBox.Show("Error RICKY" + ex).ToString();
        }

           return mensaje;        
    }

    // Validar registro al insertarlo..............................................

    public int validar(string nombre)
        {
           int cont=0;

        try
        {
            Abrir_conexion();
            cmd = new SqlCommand("SP_Validar", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@validar", nombre).ToString();

            dr = cmd.ExecuteReader();
            if (dr.Read())
            {
                cont++;
            }

            cmd.Parameters.Clear();
            Cerrar_conexion();
        
        }

        catch(Exception ex)
        {
            MessageBox.Show("Error Ricky no valido correctamente!" + ex).ToString();

        }
           return cont;

        }


    //ELIMINAR..............................................

    public int  Eliminar(string nombre)
    {

        int cont = 0;

        try {

            Abrir_conexion();
            cmd = new SqlCommand("SP_Eliminar",con);
            cmd.CommandType = CommandType.StoredProcedure;

            cmd.Parameters.AddWithValue("@Nombre",nombre);
            cont = cmd.ExecuteNonQuery(); // Pongo una variable entera (cont) porque ahi me devuelve un uno, o un cero 
            cmd.Parameters.Clear();
            Cerrar_conexion();
            
        }
        catch (Exception ex)
        {
         MessageBox.Show("Error RICKY no se ELIMINO el registro" + ex).ToString();
        }
        return cont;
    }
    //ACTUALIZAR..............................................

    public string Actualizar(string nombre, string apellido, int edad, string actualizar )
    { string mensaje = "Datos actualizado correctamente!";
        try
        { Abrir_conexion();
                
        cmd = new SqlCommand("SP_Actulizar", con);
        cmd.CommandType = CommandType.StoredProcedure;
    
        cmd.Parameters.AddWithValue("@Nombre", nombre).ToString();
        cmd.Parameters.AddWithValue("@Apellido",apellido).ToString();
        cmd.Parameters.AddWithValue("@Edad", Convert.ToInt32(edad)).ToString();
        cmd.Parameters.AddWithValue("@actualizar", actualizar).ToString();
        cmd.ExecuteNonQuery();
        cmd.Parameters.Clear();
        Cerrar_conexion();

        }

        catch(Exception ex)
        {
            MessageBox.Show("Error RICKY no se ACTUALIZO el registro" + ex).ToString();
        }

        return mensaje;
    }
            
    // BUSCAR..............................................
    public void Buscar ( string txtbuscar, DataGridView data)
    {
        try
        {
         

        Abrir_conexion();
        cmd = new SqlCommand("Buscar", con);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@filtro", txtbuscar).ToString();
                   
        da = new SqlDataAdapter(cmd);
        dt = new DataTable();
        da.Fill(dt);
        data.DataSource = dt;
        cmd.ExecuteNonQuery();
        Cerrar_conexion();
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error RICKY no se encontro  registro" + ex).ToString();

        }

       
    }


}

One Answer

Lo mejor es que trabajes en clases por separado para cada funcionalidad. Te recomiendo que le des un mirada a Los principios SOLID, no estoy seguro que exista un nombre como tal a la forma de trabajar sin en capas, pero si puedo decirte que estarás entrenando el error y tú código sera un poco menos sencillo de mantener.

Correct answer by Aderson Rangel on January 12, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP