在发布此问题之前,我已经阅读了以下帖子:
Exception "table.... has no column named...."
我尝试重新安装应用程序,但它抛出了一个异常,声明列uid_name不存在!这里的错误是什么?
我有一个数据库类,其中我有以下功能:
private static final String KEY_ID = "og_nid";
private static final String KEY_TITLE = "og_title";
private static final String KEY_UID = "og_uid";
private static final String KEY_UID_NAME = "uid_name";
public void onCreate(SQLiteDatabase db) {
String CREATE_SURVEYS_TABLE = "CREATE TABLE IF NOT EXISTS " + TABLE_SURVEYS + "("
+ KEY_ID + " INTEGER PRIMARY KEY, " + KEY_TITLE + " TEXT, "
+ KEY_UID + " TEXT, " + KEY_UID_NAME + "TEXT "+ ")";
db.execSQL(CREATE_SURVEYS_TABLE);
}
void addSurvey(Survey survey) {
SQLiteDatabase db = this.getWritableDatabase();
this.onCreate(db);
ContentValues values = new ContentValues();
values.put(KEY_ID, survey.get_id()); // Contact Name
values.put(KEY_TITLE, survey.get_title());
values.put(KEY_UID, survey.get_uid());
values.put(KEY_UID_NAME, survey.get_name());
// Contact Phone
// Inserting Row
db.insert(TABLE_SURVEYS, null, values);
db.close(); // Closing database connection
}
答案 0 :(得分:2)
在这里放一个空格(当然要重新安装或增加数据库版本):
...+ KEY_UID + " TEXT, " + KEY_UID_NAME + " TEXT "+ ")";// notice the space before the last TEXT constraint
目前,您上一栏的名称为uid_nameTEXT
。
答案 1 :(得分:2)
public void onCreate(SQLiteDatabase db) {
String CREATE_SURVEYS_TABLE = "CREATE TABLE IF NOT EXISTS " + TABLE_SURVEYS + "("
+ KEY_ID + " INTEGER PRIMARY KEY, " + KEY_TITLE + " TEXT, "
+ KEY_UID + " TEXT, " + KEY_UID_NAME + " TEXT "+ ")";
db.execSQL(CREATE_SURVEYS_TABLE);
}
你的问题是
KEY_UID_NAME +“TEXT”+“)”
在文字前留出空格 使用这个
KEY_UID_NAME +“TEXT”+“)”