问题 Android SQLite错误“请求包含表名的列名”


运行表单的SQL查询后:

SELECT table_name.column_name FROM table_name,table_name2,etc... WHERE condition1,condition2,etc...,

我收到以下错误,但没有关闭我的程序:

请求具有表名的列名 - table_name.column_name

谷歌搜索这个错误短语引导我 android.database.sqlite.SQLiteCursor第314行

在314行以上的几行有一条评论,这段代码是对错误903852的回应。但我似乎无法在谷歌上找到这个错误。

所以这是一个两部分的问题:

  1. 命名列是错误的 用SQL中的表命名? (我曾是 在这种印象下,这是一个 最佳实践)
  2. 我怎么找到     Android错误报告903852让我     能明白这是什么问题吗?     (谷歌搜索Android错误903852没有     工作)

8503
2018-04-09 05:17


起源

你可以发布你的代码吗? - Chirag
只是为了让你启动并运行:从table_name中选择a.column_name a where ...这不会回答你的问题但是如果你遇到困难应该会帮助你。 - Harald Wilhelm
看到 AbstructCursor不允许使用具有句点的列名 #2。 - ooi


答案:


就我而言,当我使用时,问题就解决了

select table_name.column_name as column_name_alt WHERE ....

后来,在我的 CursorAdapter,仅在字符串数组中称为 column_name_alt

希望这可以帮助。


9
2017-08-13 22:06



错误的上述逻辑是什么? - Muhammad Babar
该问题的良好描述和本回复中的类似建议: massimilianosciacco.com/... - shtolik


所以我在创建时遇到了这个问题 Cursor 那将被传递给一个 SimpleCursorAdapter。事实证明,虽然可以在“查询”列前缀String [],但后续 String[] from 传递给的论点 SimpleCursorAdapter 构造函数 不  需要加上前缀,以便适配器正确映射结果集。


6
2018-05-03 00:29



这个 !史诗般的回应,非常感谢! - Bogdan Zurac


我发现最好的做法是用单引号括住所有表名和条件值! [即使查询在我的独立sqlite管理器中有效,我在android中也会收到'未知列名'错误。


0
2018-04-21 13:47