以下SQLite语句抛出异常有什么问题:Table TABLE_NAME没有名为COLUMN_NAME的列

时间:2013-11-11 18:56:53

标签: android sqlite

在发布此问题之前,我已经阅读了以下帖子:

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
    }

2 个答案:

答案 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”+“)”