• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

zephirus

Ler última linha em SQLite

5 mensagens neste tópico

Olá,

Tenho uma tabela de nome 'xpto' com 3 items: 'a', 'b' e 'c'.

Pretendo ler a última entrada dessa tabela. Sei que o comando SQlite é este:

SELECT LAST(column_name) FROM table_name

Como eu pretendo todas as colunas, sei que funciona assim:

SELECT LAST(a), LAST(b), LAST© FROM xpto

Mas depois não consigo ler os três items para colocá-los numa listview.

O meu código é este:

Dim SQLconnect As New SQLiteConnection()
Dim SQLcommand As SQLiteCommand
SQLconnect.ConnectionString = "Data Source=" & appPath & "database.db3;"
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
SQLcommand.CommandText = "SELECT LAST(a), LAST(b), LAST(c) FROM xpto"
Dim SQLreader As SQLiteDataReader = SQLcommand.ExecuteReader()
While SQLreader.Read()
	Dim lvi As New ListViewItem
	Dim lvsi1 As New ListViewItem.ListViewSubItem
	Dim lvsi2 As New ListViewItem.ListViewSubItem
	lvi.Name = "a"
	lvi.Text = SQLreader("a")
	lvsi1.Name = "b"
	lvsi1.Text = SQLreader("b")
	lvsi2.Name = "c"
	lvsi2.Text = SQLreader("c")
	lvi.SubItems.Add(lvsi1)
	lvi.SubItems.Add(lvsi2)
	MainForm.listview1.Items.Add(lvi)
End While
SQLcommand.Dispose()
SQLconnect.Close()

Isto não está a funcionar. Alguma ideia?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

                
lvi.Name = "a"
lvsi1.Name = "b"
lvsi2.Name = "c"

porque fazes isto?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

                
lvi.Name = "a"
lvsi1.Name = "b"
lvsi2.Name = "c"

porque fazes isto?

Não é obrigatório, é verdade. Acho que vi isso num exemplo qualquer e deixei.

Já agora, nesta página, é possível ver que é possível usar o comando como eu exemplifiquei:

http://www.w3schools.com/Sql/sql_tryit.asp

Será que o SQLite não suporta a função LAST? Se for esse o caso, como poderei ir ler a última linha?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimenta dar nome á coluna:

Select Last(Coluna) as Nome from Tabela

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimenta dar nome á coluna:

Select Last(Coluna) as Nome from Tabela

Também tentei isso e não deu mas entretanto já resolvi.

Fiz assim:

SQLcommand.CommandText = "SELECT * FROM xpto WHERE a IN (SELECT MAX(a) FROM xpto)"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora