Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Yaldabaot en 21 Noviembre 2014, 04:36 am



Título: Problema con gridview ASP.NET C# [SOLUCIONADO]
Publicado por: Yaldabaot en 21 Noviembre 2014, 04:36 am
Hola soy yo de nuevo batallando con los gridviews de ASP.NET C# de casualidad el grid no hace nada cuando le inserto datos a la página, curiosamente si inserta en la base de datos y pues bueno necesito a fuerza que se visualicen esos datos.

Acá les adjunto mi código

STORE PROCEDURE

Código
  1.  
  2. CREATE PROCEDURE
  3. [dbo].[SP_LISTAR_DETALLE_FACTURA]
  4.  @pid_Factura INT
  5.  
  6. AS
  7. BEGIN
  8.  
  9. SELECT * FROM tb_detalle WHERE id_Factura = @pid_Factura;
  10.  
  11. END
  12.  
  13. GO
  14.  


CAPA_AD

Código
  1.  
  2.  
  3.  
  4. public List<Detalle> Listar_Detalle(Detalle objetodetalle)
  5.        {
  6.  
  7.  
  8.            string connectionString = Conexion.cadenaConexion;
  9.  
  10.            SqlConnection conn = new SqlConnection(connectionString);
  11.  
  12.            List<Detalle> detallesencontrados = null;
  13.  
  14.            SqlCommand cmd = new SqlCommand("SP_LISTAR_DETALLE_FACTURA", conn);
  15.            cmd.CommandType = CommandType.StoredProcedure;
  16.            cmd.Parameters.AddWithValue("@pid_Factura", Convert.ToInt32(objetodetalle.Id_factura));
  17.  
  18.  
  19.            conn.Open();
  20.            // execute = cmd.ExecuteNonQuery();
  21.  
  22.            SqlDataReader reader = cmd.ExecuteReader();
  23.  
  24.            detallesencontrados = new List<Detalle>();
  25.            Detalle articulosaux = null;
  26.  
  27.            while (reader.Read())
  28.            {
  29.  
  30.                articulosaux = new Detalle();
  31.  
  32.                articulosaux.Id_factura = Convert.ToInt32(reader[0]);
  33.                articulosaux.Codigo_articulo= Convert.ToInt32(reader[1]);
  34.                articulosaux.Descripcion= Convert.ToString(reader[2]);
  35.                articulosaux.Cantidad = Convert.ToInt32(reader[3]);
  36.                articulosaux.Monto = Convert.ToDouble(reader[4]);
  37.                articulosaux.Subtotal = Convert.ToDouble(reader[5]);
  38.  
  39.  
  40.                detallesencontrados.Add(articulosaux);
  41.            }
  42.  
  43.  
  44.            reader.Close();
  45.            conn.Close();
  46.  
  47.            return detallesencontrados;
  48.  
  49.  
  50.  
  51.        }
  52.  
  53.  
  54.  
  55.  


CAPA_LOGICA

Código
  1.  
  2.  
  3.  public List<Detalle> Listar_Detalle(Detalle pdetalle)
  4.        {
  5.            List<Detalle> articuloslista = null;
  6.            Detalle_AD detallesAD = new Detalle_AD();
  7.  
  8.  
  9.            articuloslista = detallesAD.Listar_Detalle(pdetalle);
  10.            return articuloslista;
  11.  
  12.        }
  13.  
  14.  
  15.  
  16.  



METODO EN EL FORMULARIO

Código
  1.  
  2.  
  3. private void llenar_grid(Detalle objeto)
  4.           {
  5.  
  6.               List<Detalle> articulos_detalle = null;
  7.               DetalleLN logicaln = new DetalleLN();
  8.  
  9.              articulos_detalle = logicaln.Listar_Detalle(objeto);
  10.              dgvDetalle.DataSource = articulos_detalle;
  11.              dgvDetalle.DataBind();
  12.  
  13.           }
  14.  
  15.  


Y por último el método que llama desde el botón

Código
  1.  
  2.  
  3.  double precio, cantidad, subtotal;
  4.                List<Detalle> detallelista = null;
  5.  
  6.                if (txtcod.Text == "" || txtdescripcion.Text == "" || txtCantidad.Text == "" || txtcosto.Text == "" || txtNumeroFactura.Text == "")
  7.                {
  8.  
  9.  
  10.                    Response.Write("Tienen que estar todos los espacios rellenados.");
  11.  
  12.                }
  13.  
  14.                else
  15.                {
  16.  
  17.                    Detalle Oobjeto = new Detalle();
  18.  
  19.                    Oobjeto.Codigo_articulo = Convert.ToInt32(txtcod.Text);
  20.                    Oobjeto.Id_factura = Convert.ToInt32(txtNumeroFactura.Text);
  21.                    Oobjeto.Descripcion = Convert.ToString(txtdescripcion.Text);
  22.                    Oobjeto.Monto = Convert.ToDouble(txtcosto.Text);
  23.                    Oobjeto.Cantidad = Convert.ToInt32(txtCantidad.Text);
  24.  
  25.                    cantidad = Convert.ToInt32(txtCantidad.Text);
  26.                    precio = Convert.ToDouble(txtcosto.Text);
  27.  
  28.                    subtotal = precio * cantidad;
  29.  
  30.                    Oobjeto.Subtotal = subtotal;
  31.  
  32.  
  33.                    DetalleLN objeto = new DetalleLN();
  34.                    objeto.Agregar_Detalle(Oobjeto);
  35.                    llenar_grid(Oobjeto);
  36.                    sumarcolumna();
  37.  
  38.  
  39.                    txtNumeroFactura.Enabled = false;
  40.  
  41.  }
  42.  
  43.  
  44.  



Pues ya he intentado de cualquier variedad de formas, no es posible que no pueda mostrar, que me falta!!?. Les agradezco mucho que se tomen la molestia de leerme, si saben por favor les agradecería una manita.

Saludos


Título: Re: Problema con gridview ASP.NET C# [SOLUCIONADO]
Publicado por: Yaldabaot en 21 Noviembre 2014, 05:35 am
Lo logré

Coloquen un sqlsource con parametro en el txtNumeroFactura.Text, luego realicen un dgvDetalle.Databind();

Listo , gracias.