Cmq, se guardi il disegno che ho pubblicato, la cosa è semplice:
Il cursore deve venire caricato tramite query select sia all'inizio che nei casi in cui modifichi o aggiungi un record (è ovvio, no? altrimenti i dati nel cursore non saranno più "validi", attuali).
Dopodiché, sia che tu voglia caricare una listview con i dati della tabella, sia che tu li voglia visualizzare in alcune label o edittext, li preleverai ovviamente dal cursore.
"andare avanti o indietro" significa passare da un record ad un altro. Per fare questo non devi fare altro che impostare la Position del cursore, che punta ai record "interni" al cursore, quindi il tasto btnAvanti incrementerà Cursore.Position di 1 (verificando che Position non abbia già il valore massimo possibile, cioè Cursore.RowCount, il numero di record "contenuti") e btnIndietro farà l'opposto, decrementerà di 1 Cursore.Position, controllando che non diventi inferiore a 0 che è il primo record.