SQLite数据库问题?

时间:2015-12-05 19:41:59

标签: 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.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;
}

}

1 个答案:

答案 0 :(得分:0)

你忘记了一个逗号:

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 )";

<强> [编辑]

我发现了另一个问题(单个陈述中有2个问题):

db.execSQL("DROP_TABLE " +TABLE_TITLE+ " IF EXISTS");

必须是

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

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