2016-12-09 2 views
0

나는 이것이 SQLite 경험이있는 사람들을위한 간단한 도구라고 생각하지만 꽤 불투명하다.ADO.NET (Xamarin, C#)을 사용하여 간단한 SQLite 데이터베이스에서 주어진 값의 최신 항목 쿼리하기

이 같은 열이있는 데이터베이스 'MYDB'이 있습니다

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

내 안드로이드 응용 프로그램은 사용자가 프로필에서 자신의 이름을 선택할 수 있습니다, 그리고 그들이 응용 프로그램에 따라 값을 변경할 때, 그것은 추가 란. 업데이트는 다음과 같이 보일 수 있습니다.

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 

일부 코드에서는 특정 이름에 대한 최신 항목 값을로드하려고합니다. 위의 예에서 나는 Greg를 time5로 원할 것입니다. 또는 Stev를 선택한 경우 Stev와 time4를 원합니다.

나는 종류의 '이름'은 문자열과 이름이 데이터베이스에서로드 선택한 사용자 인 다음 명령을 사용하여이 작업을 수행 할 수 있습니다

:

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

이는 나에게를 선택할 수는 최신 값 기간. Stev의 최신 데이터를 예제로 액세스 할 수 없습니다. 위의 코드는 가장 최근의 데이터 만 선택할 수 있기 때문입니다.

이름을 입력 한 사용자의 최신 항목을 가져 오려고했습니다. ADO.NET 경험이있는 사람이 적절한 명령을 만드는 데 도움이 될 수 있습니까?

+0

나는 당신이 원하는 것은 날짜 순서 DESC 한도 1 을 추가하는 것이라고 생각합니다. "SELECT * FROM mydb WHERE [Name] = @Name ORDER BY DATE DESC LIMIT 1"; –

+0

구조 대원 롭! 그것은 완벽하게 작동했습니다. 귀하의 의견을 보내 주셔서 감사합니다. 나는 SQL을 처음 사용하고 아직 웹에서 간결한 참조를 찾지 못했기 때문에 당황한 Google 검색 일 뿐이며,이 경우에는 내가 무엇을 찾고 있는지 정확히 알지 못했습니다. –

답변

0

난 당신이 원하는 것을 생각하는 것은 그래서 "MYDB SELECT * FROM WHERE [이름] 날짜 DESC의 LIMIT 1 BY = @Name ORDER"날짜 DESC의 LIMIT 1에 의해 주문을 추가하는 것입니다; - Rob Peterson 2 시간 전

이 댓글은 완벽하게 작동했습니다.