使用 ADO.NET 从简单的 SQLite 数据库查询给定值的最新条目(Xamarin,C#)

Querying the latest entry of a given value from a simple SQLite database with ADO.NET (Xamarin, C#)

我认为这对于那些有 SQLite 经验的人来说很简单,但对我来说却很不透明。

我有一个数据库 'mydb',其中包含这样的列:

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

我的 android 应用程序允许用户从配置文件中 select 他们的名字,当他们根据应用程序更改值时,它会添加一列。更新可能如下所示:

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,或者如果我 selected Stev,我想要 Stev 和 time4。

我可以使用以下命令来完成此操作,其中 'Name' 是一个字符串和用户选择从数据库加载的名称:

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

当然,这只允许我select期的最新一组值。例如,我无法访问 Stev 的最新数据,因为上面的代码只允许我 select 最近的

我打算获取输入姓名的用户的最新条目。有 ADO.NET 经验的人可以帮我设计合适的命令吗?

I think what you want is to add ORDER BY DATE DESC LIMIT 1 so "SELECT * FROM mydb WHERE [Name] = @Name ORDER BY DATE DESC LIMIT 1"; – Rob Peterson 2 hours ago

这条评论完美无缺。