none
Problemas para validar y listar en el grid view RRS feed

  • Pregunta

  • Hola necesito listar el pedido en un gridview lo valido atraves de la cedula del cliente,¿ como hago para validarlo ya que la cedula la tengo guardada en el Session?Aqui debajo dejo el procedure, persistencia y reglas de negocio

    create proc sp_Pedido
      @cedula nvarchar(50)
    as
    begin
      select
      a.Cedula,a.Codigo,a.Cantidad,
        sum(a.Cantidad * b.precio)as'PrecioTotal',
        a.Fecha
      from
        Carrito a
        inner join Articulos b on (b.Codigo = a.Codigo)
      where
        (a.Cedula = @cedula) group by a.Cedula,b.Codigo,a.Cantidad,a.Fecha
    end

    Lo Persisto 

                

     public override List< ListarPedido>(string pSentencia, string pCedula)
            {
                 List <colCarritos> = new List();
                SqlDataReader dr;
               try 
                {
                    SqlCommand cmd = new SqlCommand(pSentencia, conn);
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.CommandText = "sp_Pedido";
                    SqlParameter parCedula = new SqlParameter("@cedula", SqlDbType.NChar);
                    parCedula.Value = Convert.ToString(pCedula);
                    cmd.Parameters.Add(parCedula);
                    dr = cmd.ExecuteReader();

                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
                finally
                {
                    CerrarConexion();
                }

               return colCarritos;
            }

    Reglas de negocio

     public List<ListarPedido> (string pSentencia, string pCedula)
            {   pCarrito objCarritos = new pCarrito();
                 return objCarritos.CalcularPrecio(pSentencia, pCedula);
            }


    • Editado Alexis2494 viernes, 13 de marzo de 2015 1:48
    viernes, 13 de marzo de 2015 1:47

Respuestas

  • hola

    podrias hacer

    public List<ListarPedido>(string pCedula)
    {
    	
    
    	SqlCommand cmd = new SqlCommand("sp_Pedido", conn);
    	cmd.CommandType = CommandType.StoredProcedure;
    	cmd.Parameters.AddWithValue("@cedula", pCedula);
    	
    	SqlDataReader dr = cmd.ExecuteReader();
    	
    	List<ListarPedido> list = new List<ListarPedido>();
    	while(dr.Read())
    	{
    		list.Add(new ListarPedido() {
    			Cedula = Convert.ToString(dr["Cedula"]),
    			Cantidad = Convert.ToInt32(dr["Cantidad"]),
    			//resto propiedades
    		});
    	}
    
       return list;
    }

    el resultado del metodo lo asignas al datasource del grid

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 13 de marzo de 2015 2:55
  • Hola, ese es un error de escritura humana, por ejemplo si tu grilla esta esperando un campo o field denominado COD , y en tu datareader o lista o cualkier enlace de datos a la grilla no exite COD, se genera ese error, verifica las propiedades recuerda ke codigo es distinto de CODIGO o Codigo... , saludos

    G. Poliovei

    • Marcado como respuesta Alexis2494 viernes, 13 de marzo de 2015 23:52
    viernes, 13 de marzo de 2015 22:57

Todas las respuestas

  • hola

    podrias hacer

    public List<ListarPedido>(string pCedula)
    {
    	
    
    	SqlCommand cmd = new SqlCommand("sp_Pedido", conn);
    	cmd.CommandType = CommandType.StoredProcedure;
    	cmd.Parameters.AddWithValue("@cedula", pCedula);
    	
    	SqlDataReader dr = cmd.ExecuteReader();
    	
    	List<ListarPedido> list = new List<ListarPedido>();
    	while(dr.Read())
    	{
    		list.Add(new ListarPedido() {
    			Cedula = Convert.ToString(dr["Cedula"]),
    			Cantidad = Convert.ToInt32(dr["Cantidad"]),
    			//resto propiedades
    		});
    	}
    
       return list;
    }

    el resultado del metodo lo asignas al datasource del grid

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 13 de marzo de 2015 2:55
  • hola gracias por tu respuesta, cree un text box y un boton para validarlo en la pagina pero al validarlo me tilda una excepcion,cual sera el error?

    protected void btnPedido_Click(object sender, EventArgs e)
        {
            try
            {

                string pCedula = this.txtCedula.Text;
                List <colCarritos >= new List();
                rCarrito objCarritos = new rCarrito();
                colCarritos = objCarritos.sp_Pedido(pCedula);

                GridView1.DataSource = colCarritos;
                GridView1.DataBind();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

    Este es el codigo en el boton

    viernes, 13 de marzo de 2015 22:30
  • Hola, ese es un error de escritura humana, por ejemplo si tu grilla esta esperando un campo o field denominado COD , y en tu datareader o lista o cualkier enlace de datos a la grilla no exite COD, se genera ese error, verifica las propiedades recuerda ke codigo es distinto de CODIGO o Codigo... , saludos

    G. Poliovei

    • Marcado como respuesta Alexis2494 viernes, 13 de marzo de 2015 23:52
    viernes, 13 de marzo de 2015 22:57
  • La verdad que muchas gracias estaban mal los campos nombrados en el gridview
    viernes, 13 de marzo de 2015 23:52