Android SQLite数据库有问题吗?

Android SQLite数据库有问题吗?,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,我是android开发新手,数据库有问题。 如果有人能帮助我,我将不胜感激 这是我收到的错误: 12-05 19:36:49.029 9919-9919/uk.ac.acnh572city.movieapp E/SQLiteLog: (1) no such column: jsonResults 我的代码: package uk.ac.acnh572city.movieapp; import android.content.ContentValues; import android.

我是android开发新手,数据库有问题。
如果有人能帮助我,我将不胜感激

这是我收到的错误:

12-05 19:36:49.029 9919-9919/uk.ac.acnh572city.movieapp E/SQLiteLog: (1) no such column: jsonResults
我的代码:

    package uk.ac.acnh572city.movieapp;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
* Created by Amir on 29/11/2015.
*/
public class ResultsDatabase extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "movieinfo.db";
public String TABLE_TITLE = "results_dat" +
        "abase";
public static final String COLUMN_JSON = "jsonResults";
public static final String COLUMN_ID = "keyword";
public ResultsDatabase(Context context) {
    super(context, DATABASE_NAME, null, 6);
 }

@Override
public void onCreate(SQLiteDatabase db) {
    final String TABLE_CREATE =
            "CREATE TABLE " +TABLE_TITLE+ " ("+ COLUMN_ID + " TEXT " + COLUMN_JSON + " TEXT )";
    db.execSQL(TABLE_CREATE);
}


@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("DROP_TABLE " +TABLE_TITLE+ " IF EXISTS");
}
public void addResult(String keyword, String jsonResults) {

    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues cv = new ContentValues();
    cv.put(COLUMN_ID, keyword);
    cv.put(COLUMN_JSON, jsonResults);
    db.insert(TABLE_TITLE, null, cv);
    db.close();
}

public String displayResults(String keyword) {
    SQLiteDatabase db = this.getReadableDatabase();
    String query = "SELECT "+COLUMN_JSON+" FROM "+TABLE_TITLE+" WHERE "+COLUMN_ID+" = '"+keyword+"'";
    Cursor cursor = db.rawQuery(query, null);
    String result = null;

    while (cursor.moveToNext()) {
        result = cursor.getString(0);
    }
    cursor.close();
    db.close();
    return result;
}

}
你忘了一个逗号:

final String TABLE_CREATE =
        "CREATE TABLE " +TABLE_TITLE+ " ("+ COLUMN_ID + " TEXT " + COLUMN_JSON + " TEXT )";
应该是

final String TABLE_CREATE =
        "CREATE TABLE " +TABLE_TITLE+ " ("+ COLUMN_ID + " TEXT, " + COLUMN_JSON + " TEXT )";

[编辑]

我发现了另一个问题(一个声明中有两个问题):

一定是

db.execSQL("DROP TABLE IF EXISTS " +TABLE_TITLE);

您在关键字DROP和TABLE之间添加了一个额外的下划线,并在IF EXISTS子句之前错误地放置了表名。

嘿,感谢您的输入,我已经更正了它,但仍然有相同的错误。那么,什么呢?将其从仿真器中删除。这与从您的设备中删除它是一样的。非常感谢Frank先生,它现在可以工作了!!现在我该怎么做呢?我只需添加一个条件(
if(cursor!=null){…}
),就可以检查游标是否为null。我将使用列名而不是列索引。好的,谢谢,我将把它添加到我的代码中!我真的希望我能很快掌握这个窍门。
db.execSQL("DROP TABLE IF EXISTS " +TABLE_TITLE);