rs.MoveFirst
rs.MoveNext.
... etc.
Ahora las maneras para navegar por los registros son de dos maneras:
DataReader (Foward only, es decir el cursor va hacia adelante ideal para llenar DropDownList, ComboBox, arrays, etc.)
y el
DataAdapter (Cursor dinámico, se mueve en cualquier sentido,)
Ahora.. retomando la pregunta de como desplazarse lo pueden hacer mediante un objeto llamado CurrencyManager el cual se asocia con un datatable o un DataView de un Dataset el cual inlcuye la propiedad de Position que puede ser usada para navegar a través de los registros.
Les mando un ejemplo que hice utilizando un cuadro de texto, y boton llamado btnMoveNext, otro llamado btnMoveFirst, btnMovePrevious y btnMoveLast, el cual tambien utilicé la BD Nothwind de SQl Server, y lo que se muestra es en el cuadro de texto el campo CompanyName de la tabla Customers , y mediante los botones estar navegando.
El código sería algo como esto:
Declaran de manera global (mismo form) lo siguiente:
Cita:
y posteriormente: Dim oConn As New SqlClient.SqlConnection("ponga su cadena de conexion para la base de datos Northwind" )
Dim dAdap As New SqlClient.SqlDataAdapter("select * from customers", oConn)
Private cmCustomers As CurrencyManager
Dim dAdap As New SqlClient.SqlDataAdapter("select * from customers", oConn)
Private cmCustomers As CurrencyManager
Cita:
Ya lo demas depende de su imaginación y lo que podría hacer con ésto, solo es cosa de jugar con la propiedad position. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim ds As New DataSet
dAdap.Fill(ds) 'Lleno mi dataset
Dim dtCUstomers As New DataTable
dtCUstomers = ds.Tables(0) 'le asigno el Dataset a un datatable
txtCompanyName.DataBindings.Add( _
"Text", dtCUstomers , "CompanyName")
cmCustomers = CType(Me.BindingContext( _
dtCUstomers), CurrencyManager )
cmCustomers.Position = 0
End Sub
Private Sub btnMoveLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMoveLast.Click
cmCustomers.Position = cmCustomers.Count - 1
End Sub
Private Sub btnMoveNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMoveNext .Click
If cmCustomers.Position <> cmCustomers.Count - 1 Then
cmCustomers.Position += 1
End If
End Sub
Private Sub btnMoveFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMoveFirst .Click
cmCustomers.Position = 0
End Sub
Private Sub btnMovePrevious_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMovePrevious .Click
If cmCustomers.Position <> 0 Then
cmCustomers.Position -= 1
End If
End Sub
Dim ds As New DataSet
dAdap.Fill(ds) 'Lleno mi dataset
Dim dtCUstomers As New DataTable
dtCUstomers = ds.Tables(0) 'le asigno el Dataset a un datatable
txtCompanyName.DataBindings.Add( _
"Text", dtCUstomers , "CompanyName")
cmCustomers = CType(Me.BindingContext( _
dtCUstomers), CurrencyManager )
cmCustomers.Position = 0
End Sub
Private Sub btnMoveLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMoveLast.Click
cmCustomers.Position = cmCustomers.Count - 1
End Sub
Private Sub btnMoveNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMoveNext .Click
If cmCustomers.Position <> cmCustomers.Count - 1 Then
cmCustomers.Position += 1
End If
End Sub
Private Sub btnMoveFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMoveFirst .Click
cmCustomers.Position = 0
End Sub
Private Sub btnMovePrevious_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMovePrevious .Click
If cmCustomers.Position <> 0 Then
cmCustomers.Position -= 1
End If
End Sub
Espero que les sirva.. de todas formas cualquier cosa por aqui andamos.
Saludos