CLR: .Net / Mono / Boo / Otros CLR > VB .NET

 Problema al comparar 2 datagridview e insertar datos a uno nuevo

(1/1)

rdc89:
Buen día tengan tod@s!
Soy nuevo en este foro, aunque ya lo había visitado un par de veces para resolver unos problemas que tenia. Hoy me gustaría pedir su ayuda para resolver un problema que tengo con una aplicación que estoy haciendo. Lo que hará la aplicación será que al hacer clic en un botón esta comparara datos entre 2 datagridview, una fila a la vez en una columna a la cual llame “ID” y si los datos son iguales (si en ambas filas tienen el mismo ID) agregara esa fila en un nuevo datagrid con la única diferencia que en la columna “Cant” se mostrara el resultado de la resta entre la columna cant de los 2 datagrid anteriores. Ahora, mi problema esta en que cuando ejecuto la aplicacion y le doy al botón de comparación me salta una excepción y me tira este mensaje “No se pudo encontrar la columna denominada Item. Nombre del parámetro: columnName.”  Como podría resolver este problema?

Les dejo el código del botón para que lo puedan revisar, gracias por la atención.
Saludos!


--- Código: vb.net ---Private Sub ButtonDiferencia_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonDiferencia.Click        'For que recorra los datagrid para obtener las cantidades por linea        For Each drGrid1 As DataGridViewRow In DataGridViewRetail.Rows            For Each drGrid2 As DataGridViewRow In DataGridViewTricoder.Rows                'If que compare las UPC's para ver si son iguales y reste las cantidades                If drGrid2.Cells(0).Value = drGrid1.Cells(13).Value Then                    'Sumar las celdas entre los datagrid y agregarlas a una nueva variable                    Dim Cantidad As Integer                    If drGrid1.Cells(5).Value Is Nothing Then                        drGrid1.Cells(5).Value = 0                        Cantidad = Integer.Parse(drGrid1.Cells(5).Value) - Integer.Parse(drGrid2.Cells(1).Value)                    ElseIf drGrid2.Cells(1).Value Is Nothing Then                        drGrid2.Cells(1).Value = 0                        Cantidad = Integer.Parse(drGrid1.Cells(5).Value) - Integer.Parse(drGrid2.Cells(1).Value)                    Else                        Cantidad = Integer.Parse(drGrid1.Cells(5).Value) - Integer.Parse(drGrid2.Cells(1).Value)                    End If                    'Crear un select para los casos en que las cantidades sean mayor, menor o igual a 0                    Select Case (Cantidad)                        Case Is = 0                            'Obtener las columnas de cantidades de los datagrid para restarlas                            DataGridViewComparacion.Rows.Add(drGrid1.Cells("Item").Value, drGrid1.Cells("ALU"),                                                             drGrid1.Cells("Desc1"), drGrid1.Cells("Desc2"),                                                             drGrid1.Cells("Talla"), Cantidad,                                                             drGrid1.Cells("Nombre_D"), drGrid1.Cells("Nombre_C"),                                                             drGrid1.Cells("S_Nombre"), drGrid1.Cells("Nombre_Proveedor"),                                                             drGrid1.Cells("C"), drGrid1.Cells("P002"), drGrid1.Cells("Tien"),                                                             drGrid1.Cells("UPC_com"), "No hay diferencias")                        Case Is > 0                            'Obtener las columnas de cantidades de los datagrid para restarlas                            DataGridViewComparacion.Rows.Add(drGrid1.Cells("Item").Value, drGrid1.Cells("ALU"),                                                              drGrid1.Cells("Desc1"), drGrid1.Cells("Desc2"),                                                              drGrid1.Cells("Talla"), Cantidad,                                                              drGrid1.Cells("Nombre_D"), drGrid1.Cells("Nombre_C"),                                                              drGrid1.Cells("S_Nombre"), drGrid1.Cells("Nombre_Proveedor"),                                                              drGrid1.Cells("C"), drGrid1.Cells("P002"), drGrid1.Cells("Tien"),                                                              drGrid1.Cells("UPC_com"), "No hay diferencias")                        Case Is < 0                            'Obtener las columnas de cantidades de los datagrid para restarlas                            DataGridViewComparacion.Rows.Add(drGrid1.Cells("Item").Value, drGrid1.Cells("ALU"),                                                             drGrid1.Cells("Desc1"), drGrid1.Cells("Desc2"),                                                             drGrid1.Cells("Talla"), Cantidad,                                                             drGrid1.Cells("Nombre_D"), drGrid1.Cells("Nombre_C"),                                                             drGrid1.Cells("S_Nombre"), drGrid1.Cells("Nombre_Proveedor"),                                                             drGrid1.Cells("C"), drGrid1.Cells("P002"), drGrid1.Cells("Tien"),                                                             drGrid1.Cells("UPC_com"), "No hay diferencias")                        Case Else                            MsgBox("Hay un error", MsgBoxStyle.Critical, "Error en codigo")                    End Select                    Exit For 'Para salir del segundo For Each..                Else                    'Poner los articulos que solo estan en alguno de los 2 reportes                End If            Next        Next        'Esconder los datagrids        DataGridViewRetail.Hide()        DataGridViewTricoder.Hide()        'Esconder los botones no deseados para el nuevo datagrid        ButtonDiferencia.Hide()        ButtonImprimir.Hide()        Label1.Visible = False        Label2.Visible = False        ButtonCerrar.Hide()        'Mostrar el datagrid que muestra la comparacion entre los datagrids anteriores        DataGridViewComparacion.Show()        'Mostrar los botones deseados para el nuevo datagrid        Label4.Visible = True        ButtonVolver.Show()        Buttoncerrar2.Show()        Button1.Show()        Button2.Show()    End Sub 

Navegación

[0] Índice de Mensajes

Ir a la versión completa