CLR: .Net / Mono / Boo / Otros CLR > C#
comparar dos datagridview y sumar
braescobedo:
hola que tal
mi problema e sel siguiente tengo dos datagrids en un form y su primera columna se llama equipo principal de los dos datagrid y lo que quiero es que compare que si tienen el mismo equipo principal que se sume la septima columna cuando sean iguales pero que se sume la del datagrid 1 y la del datagrid 2 por separado, para asi en otro form pasarlo a otro datagrid donde ponga el equipo principal y la suma de la septima columna del datarid 1 y la suma de la septima columna del datagrid 2.
algo asi:
datagrid 1
eq. principal .........................septima columna
e1...........................................................................1
e2...........................................................................1
e2 ..........................................................................1
data grid 2
eq. principal....................................septima columna
e2.............................................................................1
e3.............................................................................1
e2.............................................................................1
e1.............................................................................1
en otro form
datagrid
equipo principal ......suma sept. col. de datagrid1..........suma sept. col. de datagrid2
e1.......................................................................1..............................................................1
e2 ......................................................................2............................................................. 2
e3 ......................................................................0............................................................. 1
de ante mano muchas gracias por el que me ayude con esto tengo, se me ocurrio algo asi para comparar el primer datagrid
For x As Integer = 0 To dg_tc.Rows.Count - 1
For y As Integer = x + 1 To dg_tc.Rows.Count - 1
If dg_tc.Item(0, x).Value = dg_tc.Item(0, y).Value Then
u = Val(dg_tc.Item(7, x).Value) + Val(dg_tc.Item(7, y).Value)
ElseIf dg_tc.Item(0, x).Value <> dg_tc.Item(0, y).Value Then
u = Val(dg_tc.Item(7, x).Value)
End If
Next
gabio2:
eso que "se te ocurrio".. está en VB.. y creo que estás en el foro de C#.. jajaja bueno no importa.. para comparar 2 datagrids.. puedes usar foreach anidados..
--- Código: vb.net ---For Each drGrid1 As DataGridViewRow In DataGrid1.Rows For Each drGrid2 As DataGridViewRow In DataGrid2.RowsIf drGrid2.Cells(0).Value = drGrid1.Cells(0).Value Then'Tú código aquí.. Exit For 'Para salir del segundo For Each.. End IfNextNext
Espero hayas entendido.. saludos! :)
braescobedo:
Hola que tal, primero que nada gracias por responder mi pregunta.
Creo que si entendi tu idea tengo un detalle al momento de implementar tu codigo me marca error en el cells
if dgf.Cells(0).value = dgc.Cells(0).value then
en el primer cells me marca error Error 1 'Cells' no es un miembro de 'System.Windows.Forms.DataGridView'
pero ya importe: Imports System.Windows.Forms
Estoy trabajando en vb.net 2008
braescobedo:
ya corregi eso, mira tengo el codigo asi pero me lo repite tres veces pero solo del primer grid no se como hacerle para que ya me lo haga con los dos bien
For Each dgc As DataGridViewRow In dg_tc.Rows
For Each dgf As DataGridViewRow In dg_tf.Rows
If dgf.Cells(0).Value = dgc.Cells(0).Value Then
For x As Integer = 0 To dg_tc.Rows.Count - 1
For y As Integer = x + 1 To dg_tc.Rows.Count - 1
If dg_tc.Item(0, x).Value = dg_tc.Item(0, y).Value Then
u = Val(dg_tc.Item(7, x).Value) + Val(dg_tc.Item(7, y).Value)
ElseIf dg_tc.Item(0, x).Value <> dg_tc.Item(0, y).Value Then
u = Val(dg_tc.Item(7, x).Value)
End If
Next
t = dg_tc.Item(0, x).Value
variable.guardad(t, u, v)
intercambiador2.instancia = variable
intercambiador2.dibujarTablad()
Next
Exit For
End If
Next
Next
intercambiador2.Show()
gabio2:
Para empezar, te recomiendo leas algo sobre como declarar variables algunas, algunas normas sobres eso, por qué dejame decirte que da trabajo entender tú código usando variables en minúsculas nada más.
Segundo, si te das cuenta que recorres 2 veces cada grid? es decir al utilizar el For Each y el For x Ad Integer = 0 To , realmente no sé para que haces eso, se me hace que tienes que repasar tús instrucciones (If-Else,While,Select Case,For,For Each, etc), para mí lo único que necesitas son 2 For Each, ahora si quieres resolver tú problema te aconsejo primero DIVIDAS tú problema y preguntes por partes.
Un saludo. :)
Navegación
[#] Página Siguiente
Ir a la versión completa