Hola Alex:
A ver si no estoy entendiendo bien lo que quieres.
Imagina que tu base de datos es:
id valor
43 tomate
44 pera
45 limón
Ahora veamos el ejemplo de
xCustomListView
Si te fijas, en Activity_Create hay un bucle que va creando todos los ítems del ListView
For i = 1 To 20
clv2.Add(CreateListItem($"Item #${i}"$, clv2.AsView.Width, 60dip), $"Item #${i}"$)
Next
Si te fijas, al método Add del CustomListView (clv2) hay que pasarle un Panel (que lo crea la sub CreateListItem) y un valor.
Precisamente ese valor es el que te devuelve el evento _ItemClick (devuelve el índice que has pulsado, y un valor)
Sub clv2_ItemClick(Index As Int, Value As Object)
Log(Index & " = " & Value)
End Sub
Tú podrías hacer que ese valor sea el id de tu base de datos, así, cuando hagas click en un item, ya obtienes el id de la base de datos.
Como ves, llama a una sub (CreateListItem) que va creando cada item, y tú la puedes pasarle los valores que quieras.
Algo como:
Private rs As ResultSet = Starter.sql.ExecQuery($"SELECT id, item FROM myDB"$)
Do While rs.NextRow
clv2.Add(CreateListItem($"s.GetString("item"), clv2.AsView.Width, 60dip), rs.GetString("id")"$)
Loop