Foros del Web » Programación para mayores de 30 ;) » .NET »

suma la cantidad solo 1º celda

Estas en el tema de suma la cantidad solo 1º celda en el foro de .NET en Foros del Web. hola, os paso mi supero código amigos y espero alguien pueda descubrir por que me cambian los datos de todas las filas del datagridview pero ...

  #1 (permalink)  
Antiguo 01/05/2011, 04:02
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Exclamación suma la cantidad solo 1º celda

hola, os paso mi supero código amigos y espero alguien pueda descubrir por que me cambian los datos de todas las filas del datagridview pero solo me cambian teniendo en cuenta la primera cifra del la primera celda del datagrid y no teniendo en cuenta la cantidad de cada celda....


Dim adaptsuma As New OleDbDataAdapter
Dim setdasuma As New DataSet

Dim comsuma = conexion.CreateCommand

adaptsuma.UpdateCommand = comsuma


comsuma.CommandType = CommandType.Text
comsuma.CommandText = "UPDATE IntroduccionDeVentasAhora SET Pts = ROUND (@pts2 /(" & TxtPorcentaje.Text & "/100),2)"
'Where NombreFormaPago <> ('TARJETA CREDITO')"

For i = 0 To DgTotales.Rows.Count - 1
Dim total As String
total = CStr((DgTotales.Rows(i).Cells(2).Value))
'MessageBox.Show(total)
comsuma.Parameters.AddWithValue("@pts2", (total))
Next

conexion.Open()
comsuma.ExecuteNonQuery()
DgTotales.Rows.Remove(DgTotales.CurrentRow)
conexion.Close()

gracias anticipadas amigos
  #2 (permalink)  
Antiguo 01/05/2011, 09:34
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: suma la cantidad solo 1º celda

nadie responde a nada en este foro?¿?, es de noche en el mundo y todos duermen?¿?
  #3 (permalink)  
Antiguo 01/05/2011, 13:34
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: suma la cantidad solo 1º celda

he cambiado la forma de hacerlo, espero alguien me conteste ahora, si os fijais en el código, vereis que saco un messagebox con el resultado, me da correcto pero como lo inserto en las celdas correspondientes al datagridview...gracias por adelantado
  #4 (permalink)  
Antiguo 01/05/2011, 13:35
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: suma la cantidad solo 1º celda

Dim total As Decimal = 0
Dim valor As Decimal = 0
Dim text As String
text = CStr(CInt(TxtPorcentaje.Text))
For i As Integer = 0 To DgTotales.Rows.Count - 1 Step 1
valor = CDec(DgTotales.Rows(i).Cells(2).Value)
'MessageBox.Show(CStr(DgTotales.Rows(i).Cells(2).V alue))
'For Each row As DataGridViewRow In DgTotales.Rows
' If row.Cells(2).Value IsNot Nothing Then
If valor <> 0 Then
total = CDec((valor) / CDbl(text) * 100)
'MessageBox.Show(CStr(total))
'valor = (valor * text) / 100
MessageBox.Show(CStr(total))
End If
Next


este es el código que os comenté antes
  #5 (permalink)  
Antiguo 01/05/2011, 15:28
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: suma la cantidad solo 1º celda

Hola guille! Que es lo que deseas hacer? sumar toda una columna?
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #6 (permalink)  
Antiguo 01/05/2011, 15:29
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: suma la cantidad solo 1º celda

sigo preguntando cosas que nadie contesta, pero si lo arreglo tranquilos lo cuelgo para que si algún día alguien lo necesita lo pueda aprovechar, he avanzado, ahora el único problema es que no se como parar el bucle for, me cambia todo bien pero el bucle for se hace infinito y no se pararlo alguién me ayuda?¿?

Dim total As Decimal = 0
Dim valor As Decimal = 0
Dim text As String
Dim i As Integer
text = CStr(CInt(TxtPorcentaje.Text))
For i = 0 To DgTotales.Rows.Count - 1 'Step 1
valor = CDec(DgTotales.Rows(i).Cells(2).Value)
'MessageBox.Show(CStr(DgTotales.Rows(i).Cells(2).V alue))
'For Each row As DataGridViewRow In DgTotales.Rows
' If row.Cells(2).Value IsNot Nothing Then
If valor <> 0 Then
total = CDec((valor) / CDbl(text) * 100)
'MessageBox.Show(CStr(total))
DgTotales.Rows(i).Cells(2).Value = total
' MessageBox.Show(CStr(total))
'DgTotales.Refresh()
End If
Next
  #7 (permalink)  
Antiguo 01/05/2011, 15:30
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: suma la cantidad solo 1º celda

hola aquaaaaa mi salvador solo estás tu en el planeta foros web...viva aquaaaaa solicito un monumento para este hombre...se merece un monumento yaaaaa¡¡¡¡¡
  #8 (permalink)  
Antiguo 01/05/2011, 15:38
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: suma la cantidad solo 1º celda

estoy en el msn
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #9 (permalink)  
Antiguo 01/05/2011, 16:21
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: suma la cantidad solo 1º celda

pues genial, todo este rato y no me va el msn, genial, simplemente genial mi puñetero pc
  #10 (permalink)  
Antiguo 01/05/2011, 16:25
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: suma la cantidad solo 1º celda

pero que deseas hacer que no entendi mucho tu finalidad...?
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #11 (permalink)  
Antiguo 01/05/2011, 16:28
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: suma la cantidad solo 1º celda

mira super aqua, tengo un texbox dónde pongo por ejemplo 10, al pulsar un botón que tengo deseo que la columna 2 del datagrid cambie sus datos sumandole un 10% y lo consigo pero no soy capaz de parar el bucle for...se hace infinito y acaba dando un desbordamiento, el código lo tienes arriba...joer creo que tengo un virus tio...no me abren la mitad de los programas...esto si que es una putadilla ....bueno eso a ver si tu sabes amigo, graciasss como siempre
  #12 (permalink)  
Antiguo 01/05/2011, 16:44
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: suma la cantidad solo 1º celda

Espera me equivoqué jajaja...
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net

Última edición por Aquaventus; 01/05/2011 a las 16:49
  #13 (permalink)  
Antiguo 01/05/2011, 16:50
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: suma la cantidad solo 1º celda

Unable to cast object of type 'System.Windows.Forms.DataGridViewRow' to type 'System.Data.DataRowView'.

marca este error, joer que putada lo del messenger ahora estoy liado con el por ver que le pasa a mi pc gracias por cierto...pero ya ves lanza el error amigo
  #14 (permalink)  
Antiguo 01/05/2011, 16:54
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: suma la cantidad solo 1º celda

Código vb.net:
Ver original
  1. For i As Integer = 0 To DgTotales.Rows.Count - 1
  2. valor = CDec(DgTotales.Rows(i).Cells(2).Value)
  3.  
  4. If valor <> 0 Then
  5. total = CDec((valor) / CDbl(Text) * 100)
  6. DgTotales.Rows(i).Cells(2).Value = total
  7. End If
  8. Next

no entiendo porque dices bucle infinito... sino no veo que haga algo infinito ya que esta definido por la cantidad de filas de tu datagrid...
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #15 (permalink)  
Antiguo 01/05/2011, 16:58
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: suma la cantidad solo 1º celda

si pongo un messagebox.show voy viendo que cambia celda a celda, cuando termina todas las celdas del grid...deja los valores iniciales y vuelve a empezar ...así sin parar hasta que da un error de desbordamiento
  #16 (permalink)  
Antiguo 01/05/2011, 17:00
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: suma la cantidad solo 1º celda

aun tienes el teamviewer?? para que me mandes tu ID y tu pass por mensaje privado...
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #17 (permalink)  
Antiguo 01/05/2011, 17:02
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: suma la cantidad solo 1º celda

arreglado....joer lo he arreglado con un antivirus gratuito...y yo con el panda pagado en el pc...para nada me conecto ahroa
  #18 (permalink)  
Antiguo 03/05/2011, 15:14
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: suma la cantidad solo 1º celda

alguna sugerencia nueva?¿?, sigo en ello luchando y nada
  #19 (permalink)  
Antiguo 03/05/2011, 15:29
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: suma la cantidad solo 1º celda

Ayudando un poco a esclarecer lo que quiere GuilleBomtrasmiti es que el lista en un datagridview datos de una tabla filtrados por una fecha, el llega a modificar su datagridview en proceso de ejecución, hasta allí todo bien, su problema es refrescar estos cambios en su tabla solo a aquellos se les ah hecho el cambio que pertenecen a una fecha determinada por el usuario, pero cuando realiza el update modifica toda su tabla, lo cual aquí el problema, cabe recalcar que su base de datos es un archivo access, espero vuestras ayudas para con este usuario. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #20 (permalink)  
Antiguo 04/05/2011, 09:34
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: suma la cantidad solo 1º celda

Guille! conversando y averiguando con mi fiel amigo Ka0stjs podemos deducir que este link puede serte util, ya que no habría la necesidad de modificar en tu datagrid y luego refrescarlo en tu BD sino directamente a tu tabla y luego listar la nueva data de tu tabla en el datagridview. Esperamos haberte sido de ayuda, lee el link que te estamos pasando y nos comentas!. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #21 (permalink)  
Antiguo 04/05/2011, 12:06
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: suma la cantidad solo 1º celda

voy a verlo super aquaaa genial ya te cuentoooo¡'''¡'''' )
  #22 (permalink)  
Antiguo 04/05/2011, 12:24
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: suma la cantidad solo 1º celda

Dim adapt As New OleDbDataAdapter
Dim setda As New DataSet
Dim com = conexion.CreateCommand

Dim com1 = conexion.CreateCommand
Dim adapt1 As New OleDbDataAdapter
Dim setda1 As New DataSet

adapt1.SelectCommand = com1
adapt.UpdateCommand = com

com1.CommandType = CommandType.Text

com1.CommandText = "SELECT reg,Cantidad,Pts,Fecha,NombreFormaPago,IvaVenta,Ba rra,NombTerminal From IntroduccionDeVentasAhora WHERE Barra = @combo1 and NombTerminal = @combo2 and IvaVenta = 18 and Fecha BETWEEN @FI AND @FF ORDER BY reg"

'creo los parametros que uso en el SELECT, para filtrar en el datagridview(dgtotales)
com1.Parameters.AddWithValue("@combo1", ComboMostrador.SelectedValue.ToString)
com1.Parameters.AddWithValue("@combo2", ComboTerminal.SelectedValue.ToString)
com1.Parameters.AddWithValue("@FI", Fecha1.Value.Date.ToString("dd/MM/yyyy"))
com1.Parameters.AddWithValue("@FF", Fecha2.Value.Date.ToString("dd/MM/yyyy"))
adapt1.Fill(setda, "IntroduccionDeVentasAhora")

com.CommandType = CommandType.Text
com.CommandText = "UPDATE IntroduccionDeVentasAhora SET Pts =ROUND (Pts / (" & TxtPorcentaje.Text & "/100),2) Where NombreFormaPago <> ('TARJETA CREDITO')"


conexion.Open()
Convert.ToDecimal(CInt(com.ExecuteScalar()))
DgTotales.Rows.Remove(DgTotales.CurrentRow)
conexion.Close()

amigos...estoy enamorado de vosotros....se que me quereis...y yo a vosotros también, pero no hay mandera humana, hice lo mismo que ponía en el link..y el cambio resulta a toda la tabla y no a lo filtrado en el grid...fijaossss este es mi código
  #23 (permalink)  
Antiguo 04/05/2011, 12:52
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: suma la cantidad solo 1º celda

tambien he probado esto, pero además de que sigue cambiando toda la tabla me toma solo el importe de la primera celda y me iguala todos los importes a este...ahhhhh me muero'''

Dim adapt As New OleDbDataAdapter
Dim setda As New DataSet
Dim com = conexion.CreateCommand
adapt.UpdateCommand = com
com.CommandType = CommandType.Text
com.CommandText = "UPDATE IntroduccionDeVentasAhora SET Pts =ROUND (@Pts / (" & TxtPorcentaje.Text & "/100),2) Where NombreFormaPago <> ('TARJETA CREDITO')"

For i As Integer = 0 To DgTotales.Rows.Count - 1
com.Parameters.AddWithValue("@Pts", DgTotales.Rows(i).Cells(2).Value)
Next

conexion.Open()
Convert.ToDecimal(CInt(com.ExecuteNonQuery()))
DgTotales.Rows.Remove(DgTotales.CurrentRow)
conexion.Close()
  #24 (permalink)  
Antiguo 04/05/2011, 12:57
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: suma la cantidad solo 1º celda

esto provoca el mismo error que el anterior ejemplo

Dim adapt As New OleDbDataAdapter
Dim setda As New DataSet
Dim com = conexion.CreateCommand
adapt.UpdateCommand = com
com.CommandType = CommandType.Text
com.CommandText = "UPDATE IntroduccionDeVentasAhora SET Pts =ROUND (@Pts / (" & TxtPorcentaje.Text & "/100),2) Where NombreFormaPago <> ('TARJETA CREDITO')"

For Each row As DataGridViewRow In DgTotales.Rows
com.Parameters.AddWithValue("@Pts", row.Cells(2).Value)
Next

conexion.Open()
Convert.ToDecimal(CInt(com.ExecuteNonQuery()))
DgTotales.Rows.Remove(DgTotales.CurrentRow)
conexion.Close()
  #25 (permalink)  
Antiguo 04/05/2011, 12:58
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: suma la cantidad solo 1º celda

Te actualiza todos porque en no hay un parametro en el cual le digas desde tales fechas a tu consulta trabaja con el where
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #26 (permalink)  
Antiguo 04/05/2011, 12:58
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: suma la cantidad solo 1º celda

esto provoca el mismo error que el anterior ejemplo

Dim adapt As New OleDbDataAdapter
Dim setda As New DataSet
Dim com = conexion.CreateCommand
adapt.UpdateCommand = com
com.CommandType = CommandType.Text
com.CommandText = "UPDATE IntroduccionDeVentasAhora SET Pts =ROUND (@Pts / (" & TxtPorcentaje.Text & "/100),2) Where NombreFormaPago <> ('TARJETA CREDITO')"

For Each row As DataGridViewRow In DgTotales.Rows
com.Parameters.AddWithValue("@Pts", row.Cells(2).Value)
Next

conexion.Open()
Convert.ToDecimal(CInt(com.ExecuteNonQuery()))
DgTotales.Rows.Remove(DgTotales.CurrentRow)
conexion.Close()
  #27 (permalink)  
Antiguo 04/05/2011, 13:03
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: suma la cantidad solo 1º celda

Me referia a que trabajes algo como esto un filtro mas para segun tu fecha que seleccionabas :

UPDATE IntroduccionDeVentasAhora SET Pts =ROUND (@Pts / (" & TxtPorcentaje.Text & "/100),2) Where NombreFormaPago <> ('TARJETA CREDITO') AND fecha = " & Convert.toDatetime(datetimepicker.text)
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #28 (permalink)  
Antiguo 04/05/2011, 13:11
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: suma la cantidad solo 1º celda

ok, voy a probarlo también, imaginate que funciona...¿¿¿¿¡¡¡¡ voy a LIMA y te doy un beso...jajajaj en los morrossss


lo pruebo¡¡¡
  #29 (permalink)  
Antiguo 04/05/2011, 13:18
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: suma la cantidad solo 1º celda

Dim adapt As New OleDbDataAdapter
Dim setda As New DataSet
Dim com = conexion.CreateCommand

com.CommandType = CommandType.Text
com.CommandText = "UPDATE IntroduccionDeVentasAhora SET Pts =ROUND (Pts / (" & TxtPorcentaje.Text & "/100),2) and Fecha BETWEEN @FI AND @FF Order by Pts"""

com.Parameters.AddWithValue("@FI", Fecha1.Value.Date.ToString("dd/MM/yyyy"))
com.Parameters.AddWithValue("@FF", Fecha2.Value.Date.ToString("dd/MM/yyyy"))

adapt.UpdateCommand = com

conexion.Open()
com.ExecuteNonQuery()
DgTotales.Rows.Remove(DgTotales.CurrentRow)
conexion.Close()


me manda este error;
Error de sintaxis (falta operador) en la expresión de consulta 'ROUND (Pts / (10/100),2) and Fecha BETWEEN @FI AND @FF Order by Pts"'.

ajjjj me da algo
  #30 (permalink)  
Antiguo 04/05/2011, 13:23
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: suma la cantidad solo 1º celda

Prueba así :
"UPDATE IntroduccionDeVentasAhora SET Pts =ROUND (Pts / (" & TxtPorcentaje.Text & "/100),2) where NombreFormaPago <> ('TARJETA CREDITO') and Fecha BETWEEN @FI AND @FF Order by Pts"
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net

Etiquetas: cantidad, celda, suma
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:19.