Principales respuestas
quiero realizar busquedas dentro de una aplicion de Visual Basic 2008 usando un DataSet creado en Access 2000-2003

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.NewLineDim 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 iPor favor, necesito ayuda,soy algo nueva en esto
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.
- Marcado como respuesta CharlotteDaSilva domingo, 8 de mayo de 2011 17:34
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.
- Marcado como respuesta CharlotteDaSilva domingo, 8 de mayo de 2011 17:34
-