02-19 16: 46: 01.677: E / AndroidRuntime (13159): android.database.sqlite.SQLiteException: нет такой таблицы: примечания - PullRequest
0 голосов
/ 19 февраля 2012

У меня возникает эта ошибка при попытке доступа к одной таблице:

02-19 16: 46: 01.677: E / AndroidRuntime (13159): android.database.sqlite.SQLiteException:нет такой таблицы: notes: INSERT INTO notes (пользователь, текст) VALUES ('john', 'testingvalue')

Но я создал таблицу!У меня есть две таблицы в базе данных («пользователи» и «заметки»), я обращаюсь к ним одинаково, но когда я пытаюсь вставить значение в таблицу «заметки», у меня возникает эта ошибка.

Это код:

package com.loopr;

import android.content.Context; 
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class SQL extends SQLiteOpenHelper {

    String createUserTable = "CREATE TABLE users (name TEXT)";
    String createNotesTable = "CREATE TABLE notes (user TEXT, text TEXT)";

    public SQL(Context context, String name, CursorFactory factory, int version) {
        super(context, name, factory, version);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(createNotesTable);
        db.execSQL(createUserTable);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int before, int after) {
        //Nothing at the moment
    }

}

Что я могу сделать?Спасибо.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2012

Что вы можете сделать?Научитесь отлаживать на Android.Читайте материал по по этой ссылке .Узнайте, как использовать проводник DDMS для извлечения баз данных из эмулятора.Получить инструмент, такой как SQLite Manager (Firefox), чтобы посмотреть на эти базы данных - это мне очень помогло.Кроме того, вы можете использовать SQLite Manager для выполнения необработанных SQL-выражений в вашей БД, что позволяет вам одновременно создавать SQL-файлы и тестировать.

0 голосов
/ 19 февраля 2012

Попробуйте изменить int version и укажите это в вашем onUpgrade переопределенном методе:

// Drop the old table.
db.execSQL("DROP TABLE IF EXISTS notes");

// Create a new one.
onCreate(db);
...