2016-12-09 8 views
0

Я думаю, что это простой пример для тех, кто имеет опыт работы с SQLite, но для меня это довольно непрозрачно.Запрос последней записи заданного значения из простой базы данных SQLite с помощью ADO.NET (Xamarin, C#)

У меня есть база данных «MYDB» с колоннами, как это:

Name Date Val1 Val 2 Val3 
Greg time1 blah blah blah 
Stev time2 blah blah blah 

Мой Android приложение позволяет пользователям выбирать свое имя из профиля, и когда они делают изменения стоимости на основе приложения, он добавляет столбец. Обновление может выглядеть следующим образом:

Name Date Val1 Val 2 Val3 
Greg time1 blah blah blah 
Stev time2 blah blah blah 
Stev time3 blah1 blah1 blah1 
Stev time4 blah2 blah2 blah2 
Greg time5 blah1 blah1 blah1 

В части моего кода, я хочу, чтобы загрузить значение последней записи для данного имени. В моем примере выше, я бы хотел, чтобы Грег вовремя5, или если я выбрал Стева, я хочу Stev и time4.

я могу сортировать это сделать с помощью следующей команды, где «Name» является строкой и имя пользователи выбрали для загрузки из базы данных:

contents.CommandText = "SELECT * FROM mydb WHERE [Name] = @Name AND [Date] = (Select MAX([Date]) from mydb)"; 
    contents.Parameters.AddWithValue("@Name", Name); 

Конечно, это только позволяет мне выбрать последний набор значений. Я не могу получить последние данные Stev в качестве примера, потому что вышеприведенный код позволяет мне выбирать самые последние.

Я собирался получить последнюю запись пользователя, чье имя я ввел. Может ли кто-нибудь с опытом ADO.NET помочь мне создать соответствующую команду?

+0

Я думаю, что вы хотите добавить ORDER BY DATE DESC LIMIT 1 так «SELECT * FROM mydb WHERE [Name] = @Name ORDER BY DATE DESC LIMIT 1"; –

+0

Роб на помощь! Это работало безупречно. Спасибо за ваш вклад. Я новичок в SQL и еще не нашел краткую ссылку в Интернете, поэтому это всего лишь запаникованный поиск в Google, и в этом случае я точно не знал, что искал. –

ответ

0

Я думаю, что вы хотите, чтобы добавить ORDER BY DESC LIMIT ДАТА 1 так "SELECT * FROM MyDB WHERE [Name] = @name ORDER BY DATE DESC LIMIT 1"; - Rob Peterson 2 часа назад

Этот комментарий работал безупречно.