2015-12-05 195 views
0

我是新来的android开发,我有一个数据库的问题。
如果有人能帮助我,我将不胜感激!问题与SQLite数据库?

这是我收到的错误:

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; 
} 

} 

回答

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子句之前放错了表名。

+0

嘿,感谢您的输入,我纠正了它,但我仍然有相同的错误。 –

+0

然后卸载并重新安装您的应用程序。 –

+0

我该怎么做? –