Как получить доступ к базе данных одного класса в другом классе? - PullRequest
0 голосов
/ 02 сентября 2011

Я создал базу данных в своем классе, как

public final String CRAZY_ALARM_DB_NAME = "CrazyDb";
public final String CRAZY_ALARM_TABLE_NAME = "CrazyTable";

alarmDB = this.openOrCreateDatabase(
    CRAZY_ALARM_DB_NAME, MODE_PRIVATE, null
);
alarmDB.execSQL("CREATE TABLE IF NOT EXISTS "
    + CRAZY_ALARM_TABLE_NAME
    +" (REQ_CODE INT(3),DAY INT(3),HOUR INT(3)"
    +",MINUTE INT(3),COUNT INT(3),REPEAT INT(3)"
    +",DAYS VARCHAR2(100),SUN INT(3),MON INT(3),"
    +"TUE INT(3),WED INT(3),THU INT(3),FRI INT(3),"
    +"SAT INT(3));"
);
cr = alarmDB.rawQuery("SELECT * FROM "
    +CRAZY_ALARM_TABLE_NAME, null
);

, поэтому я хочу использовать эту базу данных в другом классе.Я также делаю то же самое, я написал "openorcreate" код в другом классе и также курсор ... но он дал исключение, как нет такой таблицы при компиляции ... в строке курсора ..

пожалуйста, помогите мне.

Ответы [ 2 ]

3 голосов
/ 02 сентября 2011

Вы должны использовать класс SQLiteOpenHelper для доступа к вашей базе данных и ее обслуживания.

Если вы сделаете это, вы можете (в любом классе, который вам нравится) использовать следующие строки для получения базы данных для чтения или записи:

YourSQliteOpenHelper db_con = new YourSQliteOpenHelper(getApplicationContext());
// Readable:
SQLiteDatabase db = db_con.getReadableDatabase();
// Writeable:
SQLiteDatabase db = db_con.getWritableDatabase();

Учебное пособие по использованию SQLiteOpenHelper можно найти здесь .

1 голос
/ 02 сентября 2011

Лучшее, что вы можете сделать, - это иметь помощника по базе данных, в котором вы могли бы выполнять все эти вызовы и который мог бы быть доступен и доступен для всех ваших действий.

Более того, вы должны удалить и установить приложение снова вДля того, чтобы иметь возможность создать таблицу.У меня иногда возникает эта проблема.

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