2011-11-08 2 views
0

이상한 행동이 있습니다. 가 존재하지 데이터베이스가없는 경우, 그리고 난 내 활동에 다음 코드를 실행합니다데이터베이스가 이미 존재할 때 새 테이블을 만드는 데 문제가 있습니다.

listOpenHelper = new ListOpenHelper(ManageListActivity.this); 
db = listOpenHelper.getReadableDatabase(); 
Cursor cursor = db.query(ListOpenHelper.TABLE_NAME, null, null, null, null, null, BaseColumns._ID + " DESC"); 

데이터베이스는 여기에, 그리고 테이블 목록이 생성 문제를 만들 수 없습니다. 이 경우

productListOpenHelper = new ProductListOpenHelper(ProductListActivity.this); 
db = productListOpenHelper.getReadableDatabase(); 
Cursor cursor = db.query(ProductListOpenHelper.TABLE_NAME, null, null, null, null, null, ProductListOpenHelper.NAME + " ASC"); 

난 예외를 얻을 "android.database.sqlite.SQLiteException : 그런 테이블 : 목록 : 내가 다른 활동에 비슷한 블록을 실행하려고 할 때

문제는, SELECT * FROM list ORDER BY _id DESC "

데이터베이스를 지우고 위의 블록을 먼저 실행하면 첫 번째 블록 이후에 오류가 productlist 테이블에 나타납니다.

처음 실행시 모든 테이블을 생성해야합니까? 사용자가 각 활동에 입력 할 때 테이블을 만들고 싶습니다.이를 수행하는 좋은 방법이 있습니까?

감사합니다.

+0

사용자가 다른 활동을 열 때마다 왜 테이블을 삭제하고 다시 만들고 싶습니까? 데이터베이스의 모든 목적은 데이터를 저장하는 것입니다. – Jack

+0

삭제하고 다시 만들지 않았습니다. 한 번 생성했습니다. 문제는 기존 데이터베이스에 다른 테이블을 만들려고 할 때입니다. –

답변

0

두 개의 다른 데이터베이스가 있습니까? 그렇지 않다면, 에는 두 가지 다른 도우미 클래스가 있어서는 안됩니다.

또한 헬퍼를 만들 때는 일 수 있습니다.은 이상적이지 않을 수 있습니다. 블로그 게시물을 참조 :

http://www.touchlab.co/blog/single-sqlite-connection/

이 헬퍼 클래스에 대한 코드를 게시하시기 바랍니다 그리고 당신은 두 개의 서로 다른 클래스를 이유.

+0

감사합니다. 케빈! 난 단지 하나의 데이터베이스를 가지고, 나는 DB를 더 잘 만들 수있는 방법을 배우기 위해 게시 한이 사이트를 읽을 것이고, 어떤 문제가 있다면, 헬퍼의 코드를 여기에 게시 할 것이다. –

0

두 명의 다른 도우미를 사용하는 이유는 무엇입니까? 나는 좋은 방법이라고 생각하지 않습니다 ... 당신은 처음에는 테이블을 만들 수 있으며 원할 때마다 단일 도우미와 함께 db를 얻을 수 있습니다.