none
Datatable.select para filtrar registros RRS feed

  • Pregunta

  • Hola, ¿que tal?

    Estoy buscando sobre este tema, el cual ya habeis hablado otras veces. Lo he visto y lo entiendo, pero me da error.

    Yo tengo una DataTable "TABLA" con dos campos NUMEROFACTURA y NUMEROALBARAN el cual los relaciona ejemplo:

    NUMEROFACTURA              NUMEROALBARAN

    50                                            23

    50                                            25

    50                                            27

    50                                            32

    51                                            26

    51                                            31

    52                                            24

    52                                            30

    53                                             29

     

    Yo quisiera que 5 tablas contengan solamente los albaranes de 5 facturas. Ejemplo:

    Tabla1:

                 albaranes 23,25,27,32

    Tabla2:

                 albaranes 26,31

    Tabla3:

                  albaranes 24,30

    ETC

    lo intento como indicais:

    Dim Tabla1 as Datarow

    Tabla1 = TABLA.Select("Mi condicion")

    Y el diseñador me da un error:

    Un valor de tipo '1-matriz dimensional de system.data.datarow' no se puede convertir en 'system.data.datarow'

    Seguro que es alguna tonteria, pero . . .

    Gracias

    Saludos

    Juan Carlos

     

    martes, 9 de noviembre de 2010 14:01

Respuestas

Todas las respuestas

  • hola

    pero no es en un DataRow que debes hacerlo, debes tener cargado un datatable para poder luego filtrar

    pero cual es la condicion que usas en el Select() ?

    estas usando el sentencia IN ?

    TABLA.Select("NUMEROALBARAN IN (23,25,27,32)")

    o algo similar

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 9 de noviembre de 2010 14:22
  • la condición sera

    quiero los albaranes cuya factura = Contenido en una variable.

    algo así:

    "NUMEROFACTURA =" & VariableNumeroFactura

     

    mi pregunta es:

    si en la tabla que se encuentra ejecuto el select, se quedan solo esos registros?

    ejemplo:

    si la TABLA contiene los albaranes 20,21,22,23,24,25,26,27,28,29,30

    y hago TABLA.Select("NumeroFactura =" & VariableNumeroFactura)

    el contenido de la TABLA será 20,25,26,30 (en el caso de que estos sean los albaranes de esa factura,claro)

    Gracias

    Juan Carlos

     

     

    martes, 9 de noviembre de 2010 14:48
  • Veo que todo el mundo lo hace con datarow

        Dim table As DataTable = DataSet1.Tables("Orders")

        ' Presuming the DataTable has a column named Date.
        Dim expression As String
        expression = "Date > '1/1/00'"
        Dim foundRows() As DataRow

        ' Use the Select method to find all rows matching the filter.
        foundRows = table.Select(expression)

     

    Pero a mi me da el error que os comentaba en mi primer mensaje

     

    Y con tabla.select a la tabla no consigo que se filtren

    No se.

     

    martes, 9 de noviembre de 2010 15:31
  • Hola:

    En este ejemplo en concreto, el error está en:

    Dim Tabla1 As DataRow   ' Debería ser

    Dim Tabla1() As DataRow 'ó

    Dim Tabla1 As DataRow()

    Saludos

    martes, 9 de noviembre de 2010 15:38
  • claro pero en tu primer ejemplo usabas

    Dim Tabla1 as Datarow

    Tabla1 = TABLA.Select("Mi condicion")

    o sea es un DataRow, no un DataRow(), o sea ese () indica un array de DataRow

     

    deberia ser

    Dim Tabla1() As DataRow

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 9 de noviembre de 2010 16:23
  • correcto, gracias

     

    martes, 9 de noviembre de 2010 16:59

  • que bueno que fue de ayuda, me alegro

    pero te has marcado tu mismo como respuesta, no ayudaron ninguna de las que proporcione ?

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 9 de noviembre de 2010 17:07
  • Creo que no me marqué yo.

    Marqué a FOCUS MEDIA

    Aunque tu tambien diste en el ultimo mensaje, creo que el se dió cuenta antes.

    Os lo agradezco a los dos.

    ¿Puedo marcar a los dos como respuesta?

     

    Gracias

    Juan Carlos

     

    martes, 9 de noviembre de 2010 17:53