2011-09-02 4 views
0

나는 그래서 난 다른 클래스에서이 데이터베이스를 사용할 다른 클래스의 한 클래스 데이터베이스에 액세스하는 방법?

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"코드를 썼다. 커서 라인에서 컴파일 할 때 테이블과 같은 예외가 발생했다. ...

도와주세요.

+0

두 클래스의 전체 코드를 게시 할 수 있습니까? – user370305

답변

1

당신이 할 수있는 최선의 방법은 이러한 모든 호출을 할 수 있고 모든 활동에서 사용할 수 있고 액세스 할 수있는 데이터베이스 도우미를 갖는 것입니다.

또한 테이블을 만들려면 앱을 제거했다가 다시 설치해야합니다. 나는 때때로이 문제가있다.

3

데이터베이스에 액세스하여 유지 관리하려면 SQLiteOpenHelper -class를 사용해야합니다.

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

SQLiteOpenHelper를 사용하는 방법에 대한 튜토리얼이 here을 찾을 수 있습니다

이렇게하면, 당신은 (어떤 수업 시간에 당신이 좋아하는) 수는 읽기 또는 쓰기 가능한 데이터베이스를 얻기 위해 다음 줄을 사용합니다.

관련 문제