none
devolver datos de un data table RRS feed

  • Pregunta

  • hola estoy haciendo un proyecto en vb2008.net y trabajo con un datatable despues de llenar con datos mi data table (adapter.fill(dt) siendo esta la forma como lo lleno de datos mi data table) hago un filtrado de esta manera dt.defaultview.rowfilter="nombre='" & me.textbox1.text & "'" lo cual filtra en data table la informacion(la fila del data table), ahora deseo mostrar esa fila filtrada, lo cual no hallo la forma de mostrar esa fila filtrada, deseo su ayuda viendo que ustedes son expertos en el tema, gracias de antemano

    deseo que mostrarlo dela siguiente forma

    me.textbox1.text=dt 'y la fila filtrada de la primera columna'

    me.textbox2.text==dt 'y la fila filtrada de la segunda columna'

    etc.

    viernes, 28 de enero de 2011 3:33

Respuestas

  • "gonzalo vargas velez" preguntó:

    > deseo mostrar esa fila filtrada, lo cual no hallo la forma de
    > mostrar esa fila filtrada, deseo su ayuda viendo que ustedes
    > son expertos en el tema, gracias de antemano
    >
    > deseo que mostrarlo dela siguiente forma
    >
    > me.textbox1.text=dt 'y la fila filtrada de la primera columna'
    >
    > me.textbox2.text==dt 'y la fila filtrada de la segunda columna'

    Hola, Gonzalo:

    Una vez que verifiques si existen registros que coincidan con el criterio de filtro especificado, tienes que especificar el índice de la fila cuyos datos deseas mostrar en los distintos controles TextBox.

            ' Referenciamos el objeto DataView asociado
            ' al objeto DataTable.
            '
            Dim dv As DataView = dt.DefaultView

            ' Establecemos el filtro
            dv.RowFilter = "Nombre = '" & Me.TextBox1.Text & "'"

            ' Comprobamos si existe algún registro.
            '
            If (dv.Count > 0) Then

                ' Leemos los valores de los campos correspondientes
                ' al primer registro.
                '
                TextBox1.Text = dv.Item(0).Item(0).ToString()
                   TextBox2.Text = dv.Item(0).Item(1).ToString()

            Else

                ' Eliminamos el filtro.
                '
                dv.RowFilter = String.Empty

                MessageBox.Show("No existen registros que coincidan con el criterio de filtro especificado.")

            End If

    Es decir, a la propiedad «Item» del objeto DataView, le tendrás que indicar el índice en base cero del registro cuyos datos deseas leer. Así, el 0 se corresponderá con el primer registro, el 1 con el segundo registro, etc.

    La segunda propiedad «Item», se utilizará para indexar las columnas del objeto DataTable, a las que podrás especificar bien el número ordinal correspondiente a la columna, o bien su nombre:

            TextBox1.Text = dv.Item(0).Item("NombrePrimeraColumna").ToString()
            TextBox2.Text = dv.Item(0).Item("NombreSegundaColumna").ToString()

    ¡Eso es todo!

    Un saludo

     


    Enrique Martínez
      [MS MVP - VB]

    viernes, 28 de enero de 2011 7:29
    Moderador

Todas las respuestas

  • "gonzalo vargas velez" preguntó:

    > deseo mostrar esa fila filtrada, lo cual no hallo la forma de
    > mostrar esa fila filtrada, deseo su ayuda viendo que ustedes
    > son expertos en el tema, gracias de antemano
    >
    > deseo que mostrarlo dela siguiente forma
    >
    > me.textbox1.text=dt 'y la fila filtrada de la primera columna'
    >
    > me.textbox2.text==dt 'y la fila filtrada de la segunda columna'

    Hola, Gonzalo:

    Una vez que verifiques si existen registros que coincidan con el criterio de filtro especificado, tienes que especificar el índice de la fila cuyos datos deseas mostrar en los distintos controles TextBox.

            ' Referenciamos el objeto DataView asociado
            ' al objeto DataTable.
            '
            Dim dv As DataView = dt.DefaultView

            ' Establecemos el filtro
            dv.RowFilter = "Nombre = '" & Me.TextBox1.Text & "'"

            ' Comprobamos si existe algún registro.
            '
            If (dv.Count > 0) Then

                ' Leemos los valores de los campos correspondientes
                ' al primer registro.
                '
                TextBox1.Text = dv.Item(0).Item(0).ToString()
                   TextBox2.Text = dv.Item(0).Item(1).ToString()

            Else

                ' Eliminamos el filtro.
                '
                dv.RowFilter = String.Empty

                MessageBox.Show("No existen registros que coincidan con el criterio de filtro especificado.")

            End If

    Es decir, a la propiedad «Item» del objeto DataView, le tendrás que indicar el índice en base cero del registro cuyos datos deseas leer. Así, el 0 se corresponderá con el primer registro, el 1 con el segundo registro, etc.

    La segunda propiedad «Item», se utilizará para indexar las columnas del objeto DataTable, a las que podrás especificar bien el número ordinal correspondiente a la columna, o bien su nombre:

            TextBox1.Text = dv.Item(0).Item("NombrePrimeraColumna").ToString()
            TextBox2.Text = dv.Item(0).Item("NombreSegundaColumna").ToString()

    ¡Eso es todo!

    Un saludo

     


    Enrique Martínez
      [MS MVP - VB]

    viernes, 28 de enero de 2011 7:29
    Moderador
  • gracias me hizo de bastante ayuda descubri que tambien se podia utilizar de esta forma

    me.textbox1.text=dt.DefaultView.Item(0).Item(0).ToString

    siendo dt mi data table

    gracias

    sábado, 29 de enero de 2011 18:03