none
Ayuda Urgente Por favor .Sumar una columna del datagrid en wpf no datagridview RRS feed

  • Pregunta

  • Hola amigos por favor ... necesito recuperar la suma de una columna en datagrid en wpf  y guardar el valor en un textbox gracias de antemano y salu2!!>
    martes, 15 de noviembre de 2011 18:41

Respuestas

  • Hola

    Estas usando una clase como modelo o entidad, esto hace las cosas un poco más fáciles para ti :-)... mira:

    double x = 0;
    
    foreach (VentasMostrador item in dataGrid.ItemsSource)
    {
        x += item.precioUni;
    }
    


    Incluso, ya que tus datos en realidad están almacenados en tu ObservableCollection<VentasMostrador> llamada col, puedes hacer algo como esto:

    col.Sum( p => p.precioUni );
    

    Luego de hacer la suma, solo es poner el resultado en el TextBox.

    Espero te sirva

    Saludos


    Antonio Lobo
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi blog
    • Marcado como respuesta thekinglee miércoles, 16 de noviembre de 2011 2:00
    miércoles, 16 de noviembre de 2011 1:12

Todas las respuestas

  • Hola

    De que forma cargas el DataGrid? usas una ObservableCollection, una List<>, un DataSet, un DataTable, o lo cargas manualmente?

    Puedes proveer la forma en que cargas un registro?

    Un saludo


    Antonio Lobo
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi blog
    martes, 15 de noviembre de 2011 19:15
  • hola gracias por responder los cargo manualmente mi intension es llenar el datagrid con los registros y despues guardarlos en mi base de datos .. esta es la parte donde relleno el datagrid 

    ObservableCollection<VentasMostrador> col;

    col = new ObservableCollection<VentasMostrador>();

     

     

        public class VentasMostrador

        {

            public string TipoVentaMostrador { get; set; }

            public string TipoVenta { get; set; }

            public double Cantidad { get; set; }

            public double precioUni { get; set; }

     

            public double Sub_Total { get; set; }

     

        }

      dataGrid1.ItemsSource = col;

     

     

            try

            {

     

                col.Add(new VentasMostrador()

                {

                    TipoVentaMostrador = comboBox2.Text,

                    TipoVenta = comboBox1.Text,

                    Cantidad = double.Parse(txtCantidad.Text),

                    precioUni = double.Parse(menudeo.SetPrecioMostrador(comboBox2.SelectedIndex.ToString())),

                    Sub_Total = double.Parse(txtCantidad.Text)*double.Parse(menudeo.SetPrecioMostrador(comboBox2.SelectedIndex.ToString()))

     

                });

     

     

    Gracias Salu2!!.

    martes, 15 de noviembre de 2011 23:55
  • Hola

    Estas usando una clase como modelo o entidad, esto hace las cosas un poco más fáciles para ti :-)... mira:

    double x = 0;
    
    foreach (VentasMostrador item in dataGrid.ItemsSource)
    {
        x += item.precioUni;
    }
    


    Incluso, ya que tus datos en realidad están almacenados en tu ObservableCollection<VentasMostrador> llamada col, puedes hacer algo como esto:

    col.Sum( p => p.precioUni );
    

    Luego de hacer la suma, solo es poner el resultado en el TextBox.

    Espero te sirva

    Saludos


    Antonio Lobo
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi blog
    • Marcado como respuesta thekinglee miércoles, 16 de noviembre de 2011 2:00
    miércoles, 16 de noviembre de 2011 1:12
  • Muchas gracias en verdad y disculpa otra molestia: es que eh tenido problema con el datagrid , como puedo una vez llenado el datagrid guardarlo en sqlserver ? gracias nuevamente y salu2!!.
    miércoles, 16 de noviembre de 2011 2:04
  • Hola nuevamente

    Todo depende de la forma en que trabajes... como ya tienes definido un modelo y una ObservableCollection donde tienes los datos, sólo es recorrer la colección e ir ingresando los valores en la BB.DD. Ejemplo:

     

    using (SqlConnection conn = new SqlConnection("TuCadenaDeConexion"))
    {
        conn.Open();
    
    
        string sql = @"INSERT INTO TuTabla (TipoVentaMostrador, TipoVenta, Cantidad, precioUni, Sub_Total) 
                                    VALUES (@tipoVentaMostrador, @tipoVenta, @cantidad, @precioUni, @sub_Total) 
                                    SELECT SCOPE_IDENTITY()";
    
        using (SqlCommand cmd = new SqlCommand(sql, conn))
        {
    
            foreach VentasMostrador ventas in col)
            {
    
                cmd.Parameters.Clear();
    
                cmd.Parameters.AddWithValue("@tipoVentaMostrador", ventas.TipoVentaMostrador);
                cmd.Parameters.AddWithValue("@tipoVenta", ventas.TipoVent);
                cmd.Parameters.AddWithValue("@cantidad", ventas.Cantidad);
                cmd.Parameters.AddWithValue("@precioUni", ventas.precioUni);
                cmd.Parameters.AddWithValue("@sub_total", ventas.Sub_Total);
    
            }
    
        }
    }
    

     

    Espero te ayude 

    Un saludo

    PD: Si no quieres usar la ObservableCollection... puedes hacer esto para obtener todos los datos en el DataGrid (valga la aclaración que esto sólo lo puedes hacer pues estas usando un clase como modelo para cargar el DataGrid):

     

    List<VentasMostrador>() lista = dataGrid1.ItemsSource.Cast<VentasMostrador>();
    

     


    Antonio Lobo
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi blog
    • Editado Antonio Lobo miércoles, 16 de noviembre de 2011 3:34
    miércoles, 16 de noviembre de 2011 2:37
  • HOla Amigo disculpa nueva molestia ,solucione recuperar un string [] pero no puedo aun recuperar todos los valores de una List<string[]>  solo m regresa el ultimo elemento .

     

    la parte del codigo es la siguiente :

     

    List<string[]> Resultado

     

    List<string[]> Resultado =new List<string[]>(bon.ConsultarBonificaciones(int.Parse(txtNum.Text)));

     

                string[] data= new string[2];

                for (int i= 0 ; i<2;i++){

                                data = Resultado[i];       

                }

                dataGrid2.ItemsSource = data;                

    viernes, 18 de noviembre de 2011 15:50