SQLite3, таблица не найдена - PullRequest
       1

SQLite3, таблица не найдена

0 голосов
/ 20 декабря 2011

У меня есть несколько месяцев разработки для Android как хобби, и я впервые пытаюсь использовать базу данных.У меня есть этот класс в качестве помощника базы данных:

public class ContactsDbAdapter {
    public static final String KEY_NAME = "name";
    public static final String KEY_CONTACT_ID = "contactID";
    public static final String KEY_ROWID = "_id";

    private static final String TAG = "ContactsDbAdapter";
    private DatabaseHelper mDbHelper;
    private SQLiteDatabase mDb;

    private static final String DATABASE_CREATE = "create table contacts (_id integer primary key autoincrement, "
            + "name text not null, contactID text not null);";
    private final Context mCtx;
    private static final String DATABASE_NAME = "data";
    private static final String DATABASE_TABLE = "contacts";
    private static final int DATABASE_VERSION = 2;

    private static class DatabaseHelper extends SQLiteOpenHelper {

        DatabaseHelper(Context context) {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
            Log.v("t", "super(context,DATABSENAME,null..etc)");
        }

        @Override
        public void onCreate(SQLiteDatabase db) {

            db.execSQL(DATABASE_CREATE);
            Log.v("t", "db.execSQL(database_create)");
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            //TODO
        }
    }

    public ContactsDbAdapter(Context ctx) {
        this.mCtx = ctx;
        Log.v("t", "Constructor, this.mCtx=ctx");
    }

    public ContactsDbAdapter open() throws SQLException {
        mDbHelper = new DatabaseHelper(mCtx);
        mDb = mDbHelper.getWritableDatabase();
        return this;
    }

    public void close() {
        mDbHelper.close();
    }

    public long addContact(String name, String contactId) {
        ContentValues initialValues = new ContentValues();
        initialValues.put(KEY_NAME, name);
        initialValues.put(KEY_CONTACT_ID, contactId);

        return mDb.insert(DATABASE_TABLE, null, initialValues);
    }

}

и в основном методе Activity onCreate () я инициализирую базу данных с помощью

        mDbHelper = new ContactsDbAdapter(this);
        mDbHelper.open();

, затем где-то в моем коде я делаю вызовв базу данных

mDbHelper.addContact(name, contactId);

, которая не работает, потому что база данных, по-видимому, не находит таблицу с именами контактов:

12-19 19:48:50.436: I/Database(276): sqlite returned: error code = 1, msg = no such table: contacts

Есть идеи, что я делаю не так, может быть, я что-то делаюнеправильно при создании базы данных.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...