Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Yaldabaot

#91
Lo logré

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

Listo , gracias.
#92
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 (sql) [Seleccionar]


CREATE PROCEDURE
[dbo].[SP_LISTAR_DETALLE_FACTURA]
 @pid_Factura int

AS
BEGIN

SELECT * FROM tb_detalle where id_Factura = @pid_Factura;

END

GO



CAPA_AD

Código (asp) [Seleccionar]




public List<Detalle> Listar_Detalle(Detalle objetodetalle)
       {


           string connectionString = Conexion.cadenaConexion;

           SqlConnection conn = new SqlConnection(connectionString);

           List<Detalle> detallesencontrados = null;

           SqlCommand cmd = new SqlCommand("SP_LISTAR_DETALLE_FACTURA", conn);
           cmd.CommandType = CommandType.StoredProcedure;
           cmd.Parameters.AddWithValue("@pid_Factura", Convert.ToInt32(objetodetalle.Id_factura));


           conn.Open();
           // execute = cmd.ExecuteNonQuery();

           SqlDataReader reader = cmd.ExecuteReader();

           detallesencontrados = new List<Detalle>();
           Detalle articulosaux = null;

           while (reader.Read())
           {

               articulosaux = new Detalle();

               articulosaux.Id_factura = Convert.ToInt32(reader[0]);
               articulosaux.Codigo_articulo= Convert.ToInt32(reader[1]);
               articulosaux.Descripcion= Convert.ToString(reader[2]);
               articulosaux.Cantidad = Convert.ToInt32(reader[3]);
               articulosaux.Monto = Convert.ToDouble(reader[4]);
               articulosaux.Subtotal = Convert.ToDouble(reader[5]);


               detallesencontrados.Add(articulosaux);
           }


           reader.Close();
           conn.Close();

           return detallesencontrados;



       }






CAPA_LOGICA

Código (asp) [Seleccionar]



 public List<Detalle> Listar_Detalle(Detalle pdetalle)
       {
           List<Detalle> articuloslista = null;
           Detalle_AD detallesAD = new Detalle_AD();
         

           articuloslista = detallesAD.Listar_Detalle(pdetalle);
           return articuloslista;

       }







METODO EN EL FORMULARIO

Código (asp) [Seleccionar]



private void llenar_grid(Detalle objeto)
          {

              List<Detalle> articulos_detalle = null;
              DetalleLN logicaln = new DetalleLN();

             articulos_detalle = logicaln.Listar_Detalle(objeto);
             dgvDetalle.DataSource = articulos_detalle;
             dgvDetalle.DataBind();
         
          }




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

Código (asp) [Seleccionar]



 double precio, cantidad, subtotal;
               List<Detalle> detallelista = null;

               if (txtcod.Text == "" || txtdescripcion.Text == "" || txtCantidad.Text == "" || txtcosto.Text == "" || txtNumeroFactura.Text == "")
               {


                   Response.Write("Tienen que estar todos los espacios rellenados.");

               }

               else
               {

                   Detalle Oobjeto = new Detalle();

                   Oobjeto.Codigo_articulo = Convert.ToInt32(txtcod.Text);
                   Oobjeto.Id_factura = Convert.ToInt32(txtNumeroFactura.Text);
                   Oobjeto.Descripcion = Convert.ToString(txtdescripcion.Text);
                   Oobjeto.Monto = Convert.ToDouble(txtcosto.Text);
                   Oobjeto.Cantidad = Convert.ToInt32(txtCantidad.Text);

                   cantidad = Convert.ToInt32(txtCantidad.Text);
                   precio = Convert.ToDouble(txtcosto.Text);

                   subtotal = precio * cantidad;

                   Oobjeto.Subtotal = subtotal;


                   DetalleLN objeto = new DetalleLN();
                   objeto.Agregar_Detalle(Oobjeto);
                   llenar_grid(Oobjeto);
                   sumarcolumna();

                   
                   txtNumeroFactura.Enabled = false;

 }






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
#93
Estoy de acuerdo con Elektro, no soy experto en ninguno de los dos, me falta MUCHO para considerarme experto, tengo algunos años programando, pero se un poco lo básico para decir que ambos lenguajes son muy potentes y puede dar un gran rendimiento.

Me gusta mucho VB.NET, lo curioso es ver la GRAN cantidad de gente que lo odia, lo desprestigia y sobretodo lo hace a un lado, cuando es un lenguaje MUY potente y competente, estuve viendo estadìsticas de los lenguajes y en este año VB.NET ha subido muchas casillas, no es un lenguaje malo y es sencillo y fácil de entender.

C# me gusta también, es un excelente lenguaje y muy poderoso, sobre las malas prácticas ya lo especificó Elektro, hay opciones que te permiten trabajar mejor con lenguajes "opcion strict" es una de ellas en VB

PD: Elektro necesito ayuda en el otro post xD(no he podido conseguirlo u.u)
#94
.NET (C#, VB.NET, ASP) / Re: DUDA ASP.NET C#
13 Noviembre 2014, 23:37 PM
Nadie sabe?

Ayuda alguien u.u?, no entiendo porque no he podido.
#95
.NET (C#, VB.NET, ASP) / Re: DUDA ASP.NET C#
13 Noviembre 2014, 03:26 AM
Estoy usando este otro código y el gridview ni se inmuta D:

Código (asp) [Seleccionar]


  DataTable dt;


protected void Page_Load(object sender, EventArgs e)
        {

            if (!Page.IsPostBack)
            {
                dt = new DataTable();
                MakeDataTable();
            }
            else
            {
                dt = (DataTable)ViewState["DataTable"];
            }
            ViewState["DataTable"] = dt;
        }

protected void btnAgregar_Click(object sender, EventArgs e)
        {

            AddToDataTable();
            BindGrid();
         

        }

  private void MakeDataTable()
        {
            dt.Columns.Add("Codigo_Articulo");
            dt.Columns.Add("Descripcion");
            dt.Columns.Add("Cantidad");
            dt.Columns.Add("Precio");
        }

        private void AddToDataTable()
        {
            DataRow dr = dt.NewRow();
              dr["Codigo_Articulo"] = txtCodArt.Text;
              dr["Descripcion"] = txtDescripcion.Text;
              dr["Cantidad"] = txtCantidad.Text;
              dr["Precio"] = txtPrecio.Text;
              dt.Rows.Add(dr);
        }

        private void BindGrid()
        {
            dgvCostos.DataSource = dt;
            dgvCostos.DataBind();
        }





#96
.NET (C#, VB.NET, ASP) / Re: DUDA ASP.NET C#
13 Noviembre 2014, 02:43 AM
Lamento decirlo, pero sigo sin poder agregarlos, el datagrid sigue en blanco, será algún postback o alguna propiedad(le cambie los parentesis por cuadrados porque me daba error, pero lo demás estaba idéntico).

Código (asp) [Seleccionar]


//Codigo del botón
this.dt = (DataTable)dgvCostos.DataSource;

            if (dt == null)
            {
                dt = new DataTable();
                dt.Columns.AddRange(columns);
                dgvCostos.DataSource = dt;
                dgvCostos.DataBind();
            }

/

            DataRow dr = dt.NewRow();
              dr["Codigo_Articulo"] = txtCodArt.Text;
              dr["Descripcion"] = txtDescripcion.Text;
              dr["Cantidad"] = txtCantidad.Text;
              dr["Precio"] = txtPrecio.Text;
            dt.Rows.Add(dr);
            dt.AcceptChanges();


            }
               


//Codigo del datatable   
private DataTable dt;
        private readonly DataColumn[] columns = {
new DataColumn("Codigo_Articulo", typeof(string)),
new DataColumn("Descripcion", typeof(string)),
new DataColumn("Cantidad", typeof(int)),
new DataColumn("Precio", typeof(double))

    };

#97
Buen artículo, estuve de acuerdo con unas cosas y otras no, pero sencillamente me parece un excelente aporte y porque no?, un punto de vista disinto.

Como consejo, ten cuidado con las faltas ortográficas, por ejemplo en la página 10. No quiero caer mal con eso, simplemente te lo doy como recomendación.

SALUDOS.
#98
.NET (C#, VB.NET, ASP) / Re: DUDA ASP.NET C#
12 Noviembre 2014, 20:49 PM
Gracias elektro!!!, lo probaré y te cuento como me fue!!!

SALUDOS!!.
#99
.NET (C#, VB.NET, ASP) / Re: DUDA ASP.NET C#
12 Noviembre 2014, 16:57 PM
Talvez no me dí a entender bien, disculpen.

Tengo 4 cajas de texto(textbox) las cuales escribiré ahí los datos. La idea es hacer como una especie de líneas de facturas, como cuando vas a un punto de ventas y se agregan los artículos línea a línea a un datagridview.

Lo que quiero es simplemente agarrar lo que escribes en esos campos y transferirlo en forma de registro(como si hubieras hecho un insert) al datagridview.

También quiero que si ya hay datos pues no los sobrescriba, sino que simplemente agregue otra línea más.

Ya he utilizado estos enlaces:

http://neobject.blogspot.com/2010/04/agregar-registros-un-gridview.html

http://www.webestilo.com/foros/mensaje.phtml?foro=14&msg=40519
http://www.codeproject.com/Articles/10982/Adding-a-row-to-an-ASP-NET-DataGrid

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.rows%28v=vs.110%29.aspx

http://www.aspsnippets.com/Articles/Add-new-Row-to-GridView-on-Button-Click-in-ASPNet.aspx


Pero sólo me inserta espacios en blanco, habrá alguna propiedad que no esté utilizando???.
No se donde va este tema pero sino pueden pasarlo, mis disculpas.
Saludos!.
#100
.NET (C#, VB.NET, ASP) / DUDA ASP.NET C#
12 Noviembre 2014, 06:11 AM
Buenas

Estoy tratando de hacer algo muy simple, es solo agregar al datagridview un registro conforme voy dandole los datos y posteriormente multiplicar y sumar las facturas, tal como se hace cuando uno realiza un facturador.

Código (asp) [Seleccionar]



            //DataTable dt = new DataTable();
            //dt.Columns.Add("Codigo_Articulo");
            //dt.Columns.Add("Descripcion");
            //dt.Columns.Add("Cantidad");
            //dt.Columns.Add("Precio");

            DataTable dt = dgvCostos.DataSource as DataTable;

            if (dt != null)
            {

                DataRow dr = dt.NewRow();
                dr["Codigo_Articulo"] = txtCodArt.Text;
                dr["Descripcion"] = txtDescripcion.Text;
                dr["Cantidad"] = txtCantidad.Text;
                dr["Precio"] = txtPrecio.Text;
                dt.Rows.Add(dr);
                dt.AcceptChanges();

                dgvCostos.DataSource = dt;
                dgvCostos.DataBind();
            }


Estoy con ese codigo, pero simplemente no hace nada, como pueden ver lo he alternado, pero simplemente el datagridview sigue viendose vacio.

En el datagridview tengo realizado las columnas respectivas(ya estan creadas), pero bueno sigo sin entender el porque no se agregan con un codigo tan simple.

Y de paso, saben como puedo hacer que conforme se agregue se multipliquen la columna precio * cantidad?, y al final sumarlos todos como en una factura?. Estuve pensando que usando alguno de los parametros e que capturan los eventos se puede realizar, pero talvez haya una forma mas simple.

Estoy trabajando con visual studio 2010, ASP.NET C#.

De antemano gracias al menos por leerme.