• Viernes 26 de Abril de 2024, 18:45

Autor Tema:  Problema al comparar 2 datagridview e insertar datos a uno nuevo  (Leído 3570 veces)

rdc89

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Problema al comparar 2 datagridview e insertar datos a uno nuevo
« en: Miércoles 9 de Mayo de 2012, 19:45 »
0
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
  1. Private Sub ButtonDiferencia_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonDiferencia.Click
  2.         'For que recorra los datagrid para obtener las cantidades por linea
  3.         For Each drGrid1 As DataGridViewRow In DataGridViewRetail.Rows
  4.             For Each drGrid2 As DataGridViewRow In DataGridViewTricoder.Rows
  5.                 'If que compare las UPC's para ver si son iguales y reste las cantidades
  6.                 If drGrid2.Cells(0).Value = drGrid1.Cells(13).Value Then
  7.                     'Sumar las celdas entre los datagrid y agregarlas a una nueva variable
  8.                     Dim Cantidad As Integer
  9.                     If drGrid1.Cells(5).Value Is Nothing Then
  10.                         drGrid1.Cells(5).Value = 0
  11.                         Cantidad = Integer.Parse(drGrid1.Cells(5).Value) - Integer.Parse(drGrid2.Cells(1).Value)
  12.                     ElseIf drGrid2.Cells(1).Value Is Nothing Then
  13.                         drGrid2.Cells(1).Value = 0
  14.                         Cantidad = Integer.Parse(drGrid1.Cells(5).Value) - Integer.Parse(drGrid2.Cells(1).Value)
  15.                     Else
  16.                         Cantidad = Integer.Parse(drGrid1.Cells(5).Value) - Integer.Parse(drGrid2.Cells(1).Value)
  17.                     End If
  18.                     'Crear un select para los casos en que las cantidades sean mayor, menor o igual a 0
  19.                     Select Case (Cantidad)
  20.                         Case Is = 0
  21.                             'Obtener las columnas de cantidades de los datagrid para restarlas
  22.                             DataGridViewComparacion.Rows.Add(drGrid1.Cells("Item").Value, drGrid1.Cells("ALU"),
  23.                                                              drGrid1.Cells("Desc1"), drGrid1.Cells("Desc2"),
  24.                                                              drGrid1.Cells("Talla"), Cantidad,
  25.                                                              drGrid1.Cells("Nombre_D"), drGrid1.Cells("Nombre_C"),
  26.                                                              drGrid1.Cells("S_Nombre"), drGrid1.Cells("Nombre_Proveedor"),
  27.                                                              drGrid1.Cells("C"), drGrid1.Cells("P002"), drGrid1.Cells("Tien"),
  28.                                                              drGrid1.Cells("UPC_com"), "No hay diferencias")
  29.                         Case Is > 0
  30.                             'Obtener las columnas de cantidades de los datagrid para restarlas
  31.                             DataGridViewComparacion.Rows.Add(drGrid1.Cells("Item").Value, drGrid1.Cells("ALU"),
  32.                                                               drGrid1.Cells("Desc1"), drGrid1.Cells("Desc2"),
  33.                                                               drGrid1.Cells("Talla"), Cantidad,
  34.                                                               drGrid1.Cells("Nombre_D"), drGrid1.Cells("Nombre_C"),
  35.                                                               drGrid1.Cells("S_Nombre"), drGrid1.Cells("Nombre_Proveedor"),
  36.                                                               drGrid1.Cells("C"), drGrid1.Cells("P002"), drGrid1.Cells("Tien"),
  37.                                                               drGrid1.Cells("UPC_com"), "No hay diferencias")
  38.                         Case Is < 0
  39.                             'Obtener las columnas de cantidades de los datagrid para restarlas
  40.                             DataGridViewComparacion.Rows.Add(drGrid1.Cells("Item").Value, drGrid1.Cells("ALU"),
  41.                                                              drGrid1.Cells("Desc1"), drGrid1.Cells("Desc2"),
  42.                                                              drGrid1.Cells("Talla"), Cantidad,
  43.                                                              drGrid1.Cells("Nombre_D"), drGrid1.Cells("Nombre_C"),
  44.                                                              drGrid1.Cells("S_Nombre"), drGrid1.Cells("Nombre_Proveedor"),
  45.                                                              drGrid1.Cells("C"), drGrid1.Cells("P002"), drGrid1.Cells("Tien"),
  46.                                                              drGrid1.Cells("UPC_com"), "No hay diferencias")
  47.                         Case Else
  48.                             MsgBox("Hay un error", MsgBoxStyle.Critical, "Error en codigo")
  49.                     End Select
  50.                     Exit For 'Para salir del segundo For Each..
  51.                 Else
  52.                     'Poner los articulos que solo estan en alguno de los 2 reportes
  53.                 End If
  54.             Next
  55.         Next
  56.         'Esconder los datagrids
  57.         DataGridViewRetail.Hide()
  58.         DataGridViewTricoder.Hide()
  59.         'Esconder los botones no deseados para el nuevo datagrid
  60.         ButtonDiferencia.Hide()
  61.         ButtonImprimir.Hide()
  62.         Label1.Visible = False
  63.         Label2.Visible = False
  64.         ButtonCerrar.Hide()
  65.         'Mostrar el datagrid que muestra la comparacion entre los datagrids anteriores
  66.         DataGridViewComparacion.Show()
  67.         'Mostrar los botones deseados para el nuevo datagrid
  68.         Label4.Visible = True
  69.         ButtonVolver.Show()
  70.         Buttoncerrar2.Show()
  71.         Button1.Show()
  72.         Button2.Show()
  73.     End Sub
  74.