¿Consultar un dato en un dataset cargado?

Tengo un dataset cargado con 2 tablas, una es de un archivo Excel y la otra con una tabla mysql, la idea es buscar un registro de una columna en concreto de la tabla de Excel en la tabla tabla mysql. Hasta el momento lo tengo con un bucle asi:

Ds.Tables(1).TableName = "Mysql"

Ds.Tables(2).TableName = "Excel"

For i = 0 To Ds.Tables(2).Rows.Count - 1

        Cuenta = Ds.Tables(2).Rows(i).Item("CVACCT")  

        Campo = Ds.Tables(2).Rows(i).Item("PRODGENERAL")  

                For M = 0 To Ds.Tables(1).Rows.Count - 1

                Producto = Ds.Tables(1).Rows(M).Item("NOMBRE")

                Estado = Ds.Tables(1).Rows(M).Item("ESTADO")

                 If Campo = Producto Then

                        If Estado = "Activo"Then

                        Ds.Tables(2).Rows(i).Item("ESTADO") = "Activo"

                        Exit For

                        Else

                       Ds.Tables(2).Rows(i).Item("ESTADO") = "Inactivo"

                       Exit For

                      EndIf

             Else

            Ds.Tables(2).Rows(i).Item("ESTADO") = "Nuevo"

           EndIf

      Next

Next

Hasta ahí todo funciona bien, pero quiero saber si hay una forma de hacer esto, mas fácil y rápida... Que no tenga que hacer demasiados bucles.

2 Respuestas

Respuesta
1

Una nueva posibilidad seria utilizar el formato Vista que incluye cada tabla y aplicar un filtro. De esta forma podrías comprobar si el registro existe o no en una tabla y posteriormente actualizar la otra.

Otra opción es usar Lynq para consultar las tablas de tu dataset. Puedes ver los detalles en este acticulo: https://msdn.microsoft.com/en-us/library/bb399358(v=vs.110).aspx 

Respuesta
1

Hay una manera de hacerlo a través de un DataView te paso un ejemplo de como lo puedes utilizar con eso te evitas dar la vuelva a todo el dataset para saber si esta el dato o no

Dim dv as DataView = dataset.DefaultViewdv.Filter = "Campo1>'valor'Dv.conunt

Sañludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas