【问题标题】:Android: ViewBinder & SimpleCursorAdapter SQL woesAndroid:ViewBinder 和 SimpleCursorAdapter SQL 问题
【发布时间】:2014-08-26 21:29:05
【问题描述】:

我正在努力让更复杂的查询与 SimpleCursorAdapter 和 ViewBinder 与 ListView 一起使用。当我刚刚返回表中的所有条目时,这没问题。但是,我想按名称顺序从我的表中返回艺术家姓名列表。最大的问题是 SimplerCursorAdapter/ViewBinder 期望的“rowid _id”字段。

当我查询 SELECT rowid _id、Artist.NAME 等表单时,我的代码运行良好,但我想使用 DISTINCT 关键字返回唯一的艺术家姓名集。我不能把“rowid _id”放在“DISTINCT Artist.Name”之前,也不能放在后面。解决办法是什么?

我想要的查询 (A) 是(显示时没有“rowid _id”):

String sQuery = String.format( "SELECT DISTINCT Artist.Name, Artist.ID FROM Artist JOIN Tune ON Artist.ID=Tune.ArtistID AND Tune.Type=%d AND Tune.SubType=%d ORDER BY Artist.Name", nType, nSubtype );

澄清一下,这是可行的:

Cursor c = db.rawQuery( "SELECT rowid _id, Name, Rating FROM Tune ORDER BY Name", null );

每当我将 rowid _id 放回查询 (A) 时,我都会收到“没有这样的列 rowid”异常:

String sQuery = String.format( "SELECT rowid _id, Artist.Name, Artist.ID FROM Artist JOIN Tune ON Artist.ID=Tune.ArtistID AND Tune.Type=%d AND Tune.SubType=%d ORDER BY Artist.Name", nType, nSubtype );

我做错了什么?

编辑:我什至不明白“rowid _id”做了什么——当我有一个带有连接的查询时,我的 SQLite 管理器(测试工具)也不喜欢它。它似乎只适用于简单的 1 表查询。所以如果是这样的话。如果没有 SimpleCursorAdapter 和 ViewBinder,我该如何使这个查询工作?

【问题讨论】:

  • @Luksprog:实际上,我发现在查看我的问题以查看哪些问题与 Android 相关时更容易。这会让版主非常不安吗?
  • 没有特别的规定,它只是遵守网站的建议。它只是广告混乱,您可以使用额外的空间来提出更好的标题(这对您将来修改问题很有好处),ViewBinder & SimpleCursorAdapter SQL woes 不是很清楚显示问题(同时吸引更合适的帮助)。
  • 我看到rowid_id 之间有一个空格,是拼写错误吗?
  • @shayanpourvatan:是的,这是故意的。这意味着将 rowid 别名为“_id”。无论如何我已经找到了解决方案,如果其他人有同样的问题,我会发布我的答案。

标签: android sqlite simplecursoradapter android-viewbinder


【解决方案1】:

答案是忘记使用 rowid 并改用我自己的 Artist.ID 字段。只要我将字段名称别名为 SimpleCursorAdapter 在第 0 列中期望的 _id,这将起作用。

String sQuery = String.format( "SELECT DISTINCT Artist.ID  _id, Artist.Name  FROM Artist JOIN Tune ON Artist.ID=Tune.ArtistID AND Tune.Type=%d AND Tune.SubType=%d ORDER BY Artist.Name", nType, nSubtype );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    相关资源
    最近更新 更多