none
quiero realizar busquedas dentro de una aplicion de Visual Basic 2008 usando un DataSet creado en Access 2000-2003 RRS feed

  • Pregunta

  • quiero realizar busquedas dentro de una aplicion de Visual Basic 2008 usando un DataSet creado en Access 2000-2003 pero dentro de mi codigo me marca el siguiente error en la primera declaracion que hago, me dice q "BASOR_1DataTable es un tipo en WindowsAplication1.DataSet y no se puede usar como expresion"

     Dim miTabla As DataTable = -Base_de_Datos_BASORDataSet.BASOR_1DataTable
            Dim cfilas As DataRowCollection = miTabla.Rows
            Dim filaBuscada() As DataRow 'matriz de filas
            Dim NL As String = Environment.NewLine

    Dim criterio As String = "Nombre like '*" & TextBox1.Text & "*'"

    filaBuscada = miTabla.Select(criterio)
            If (filaBuscada.GetUpperBound(0) = -1) Then
                MessageBox.Show("No se encontraron registros coincidentes", "Buscar")
                Exit Sub
            End If


            Dim i, j As Integer
            For i = 0 To filaBuscada.GetUpperBound(0)
                If (MessageBox.Show("¿Es este el nombre buscado?" & NL & _
                                    filaBuscada(i)(0) & NL, "Buscar", _
                    MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes) Then
          
                    For j = 0 To cfilas.Count - 1
                        If (cfilas(j).Equals(filaBuscada(i))) Then
                            BASOR_1BindingSource.Position = j

                        End If
                    Next j
                    Exit For
                End If
            Next i

     

    Por favor, necesito ayuda,soy algo nueva en esto

    domingo, 8 de mayo de 2011 6:59

Respuestas

  • Bueno, el mensaje de error tiene toda la razón, "es un tipo y no se puede usar como expresión". Salvo que el código haya quedado mal copiado y pegado en el mensaje, lo que has puesto es un signo "menos" por delante del nombre de un datatable tipado, por lo que el compilador se queja de que ese tipo no se puede usar en la expresión (no puedes cambiarle el signo a un DataTable).

    Me imagino que lo que quieres hacer es cargar de datos el datatable y buscar sobre esos datos. Para eso tienes que instanciarlo en una variable y llamar al método Fill de un DataAdapter sobre dicha instancia, y luego buscar en la instancia. Si ya tienes construído un TableAdapter con el diseñador de Visual Studio, todas las operaciones anteriores se pueden hacer automáticamente llamando al método GetData del TableAdapter:

    Dim ta As New Base_de_Datos_BASORTableAdapters.MiTablaTableAdapter()
    Dim miTabla As Base_de_Datos_BASORDataSet.BASOR_1DataTable = ta.GetData()
    

    Y después de eso ya buscas dentro de "miTabla" como lo estabas haciendo. Por supuesto, el nombre y el namespace que te he escrito más arriba para el tableadapter me los he inventado. Tendrás que poner ahí el auténtico nombre del tableadapter que has creado con Visual Studio.

     

    domingo, 8 de mayo de 2011 7:20

Todas las respuestas

  • Bueno, el mensaje de error tiene toda la razón, "es un tipo y no se puede usar como expresión". Salvo que el código haya quedado mal copiado y pegado en el mensaje, lo que has puesto es un signo "menos" por delante del nombre de un datatable tipado, por lo que el compilador se queja de que ese tipo no se puede usar en la expresión (no puedes cambiarle el signo a un DataTable).

    Me imagino que lo que quieres hacer es cargar de datos el datatable y buscar sobre esos datos. Para eso tienes que instanciarlo en una variable y llamar al método Fill de un DataAdapter sobre dicha instancia, y luego buscar en la instancia. Si ya tienes construído un TableAdapter con el diseñador de Visual Studio, todas las operaciones anteriores se pueden hacer automáticamente llamando al método GetData del TableAdapter:

    Dim ta As New Base_de_Datos_BASORTableAdapters.MiTablaTableAdapter()
    Dim miTabla As Base_de_Datos_BASORDataSet.BASOR_1DataTable = ta.GetData()
    

    Y después de eso ya buscas dentro de "miTabla" como lo estabas haciendo. Por supuesto, el nombre y el namespace que te he escrito más arriba para el tableadapter me los he inventado. Tendrás que poner ahí el auténtico nombre del tableadapter que has creado con Visual Studio.

     

    domingo, 8 de mayo de 2011 7:20
  • muchas gracias, en este momento lo checo :D
    domingo, 8 de mayo de 2011 17:34