Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用“错误”;选择*FROM";_Android_Android Sqlite - Fatal编程技术网

Android 使用“错误”;选择*FROM";

Android 使用“错误”;选择*FROM";,android,android-sqlite,Android,Android Sqlite,我已经搜索了stackoverflow,上面错误的大多数解决方案都是由于在组合查询时没有输入空格。我已经检查了一遍又一遍,没有发现间距有任何问题,我使用的其他命令似乎工作正常。表已成功创建,我可以插入数据(并使用id检索数据),但无法选择所有行。这是我的数据库代码: android.database.sqlite.SQLiteException: near "SELECT ": syntax error (code 1): , while compiling: SELECT  * FRO

我已经搜索了stackoverflow,上面错误的大多数解决方案都是由于在组合查询时没有输入空格。我已经检查了一遍又一遍,没有发现间距有任何问题,我使用的其他命令似乎工作正常。表已成功创建,我可以插入数据(并使用id检索数据),但无法选择所有行。这是我的数据库代码:

    android.database.sqlite.SQLiteException: near "SELECT ": syntax error (code 1): , while compiling: SELECT  * FROM stats
我希望我只是累了,错过了一些小东西。感谢您的帮助

试试这个:

public class StatListFragment extends ListFragment {

private Statdb db;// = new Statdb(getActivity());

[...]

private void showStats(){
    db = new Statdb(getActivity().getApplicationContext());

    db.getAllStats();

如果我没有弄错的话,那么可能您缺少了
位于查询字符串的末尾

 // Select All Query
    String selectQuery = "SELECT  * FROM " + TABLE_NAME;

    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);
但是,我建议使用
String.format
,这也有助于构建复杂的查询。例如:

String selectQuery = "SELECT * FROM " + TABLE_NAME + ";";

如果问题出在
SELECT
*
之间的额外空格,我会非常惊讶。您是否尝试过不使用原始查询?也许可以使用
查询(TABLE_NAME,null,null,null,null,null)
?额外的空间不会导致错误。@Karakuri-我会试一试。对于其他不断提到额外空间的人,我已经删除了它,它返回相同的错误。事实上,正如我所说,它不会给你任何错误。你最好检查select语句中“TABLE_NAME”的值。你自己的输入是什么?它可能包括在内,但只是为了读取你的数据。你可以像我在这里做的那样调用它。这对我很管用……好吧,这是一些疯狂的废话@SacreDeveloper的解决方案有效,但是,如果您尝试他的解决方案并在选择后删除额外的空白,则会抛出上述错误。我甚至不知道该说什么……呵呵,这的确很疯狂,但我很高兴它对你有用:)
不添加任何香料。它仅用于分隔多个命令
String selectQuery = "SELECT * FROM " + TABLE_NAME + ";";
String selectQuery = String.format("SELECT * FROM %s;", TABLE_NAME);