Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Como utilizar Move First, Next, etc (http://www.forosdelweb.com/f29/como-utilizar-move-first-next-etc-156909/)

RootK 03/10/2003 09:33

Como utilizar Move First, Next, etc
 
Hola, tal vez algunos estén acostumbrados a trabar con la version de ASP o VB 6.0 para moverse por los registros de la siguiente manera con la version de ADO anterior.

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. :-D

El código sería algo como esto:

Declaran de manera global (mismo form) lo siguiente:

Cita:

Dim oConn As New SqlClient.SqlConnection("ponga su cadena de conexion para la base de datos Northwind" :si: )
Dim dAdap As New SqlClient.SqlDataAdapter("select * from customers", oConn)
Private cmCustomers As CurrencyManager ;-)
y posteriormente:

Cita:

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
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.

Espero que les sirva.. de todas formas cualquier cosa por aqui andamos.

Saludos :-D

GuZtaviN 03/10/2003 13:46

oye muy buen ejemplo! no conocia esto del currency manager y parece muy interesante... voy a pelearme un poco con eso a ver si consigo poder desplazarme por el datagrid con ese codigo... ya te contare ;-)

muchas gracias! :arriba:

RootK 20/04/2004 16:45

Creo que este post ya tenía tiempo pero quería que lo volvieran a checar por si alguien más le sirve. :arriba:

Saludos :cool:

cuscus 19/07/2005 04:45

muchas gracias, me ha sido muy util, solo una cosa, si no quiero que los edit del formulario esten enganchados a ningun componente, osea que sea yo el q les asigna un valor ¿no me queda otra que no usar el currencyManager y currarme yo a pelo un contador-posicionador verdad?

keikos 07/08/2009 10:43

Respuesta: Como utilizar Move First, Next, etc
 
muchas gracias, me salvaste =)


La zona horaria es GMT -6. Ahora son las 18:50.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.