2

この質問を投稿する前に、次の投稿を確認しました。

例外「テーブル.... という名前の列がありません....」

アプリケーションを再インストールしようとしましたが、列 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
    }
4

2 に答える 2

2

ここにスペースを入れます (もちろん、再インストールするか、データベースのバージョンを増やします):

...+ KEY_UID + " TEXT, " + KEY_UID_NAME + " TEXT "+ ")";// notice the space before the last TEXT constraint

現在、最後の列の名前はuid_nameTEXTです。

于 2013-11-11T19:00:39.027 に答える
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 + "テキスト "+ ")"

テキストがこれを使用する前にスペースを空けてください

KEY_UID_NAME + "テキスト"+ ")"

于 2013-11-11T19:01:26.323 に答える