2012-05-13 4 views
-2

가능한 중복 : 나는 안드로이드 장치를 사용하여 간단한 데이터베이스를 만들기위한 간단한 인터페이스를 만들기 위해 노력하고
How do I list the tables in a SQLite database file데이터베이스에서 모든 테이블을 검색하려면 어떻게합니까? (안드로이드, SQLite는)

. 예를 들어, 집에 영화 컬렉션을 데이터베이스에 삽입하는 프로그램입니다. 어쩌면 내가 처음부터 틀렸어.하지만 이건 내 시도 다.

여기에서 필자는 필드에서 데이터를 검색하여 새 테이블에 삽입한다.

 EditText title = (EditText)findViewById(R.id.Title); 
     String Title = title.getText().toString(); 

     EditText d = (EditText)findViewById(R.id.director); 
     String Director = d.getText().toString(); 

       SQLiteDatabase db = openOrCreateDatabase("Films", MODE_PRIVATE, null); 
     db.execSQL("CREATE TABLE IF NOT EXISTS " + Title + " (Title VARCHAR, Director VARCHAR);"); 
     db.execSQL("INSERT INTO " + Title + "(Title) VALUES('" + Title + "');"); 
     db.execSQL("INSERT INTO " + Title + " (Director) VALUES('" + Director + "');"); 
     db.close(); 

그래서 새 타이틀마다 새 테이블을 만듭니다. 그렇지만이 모든 테이블을 새로운 Activity에서 목록이나 그와 비슷한 것으로 인쇄하려면이 테이블이 필요합니다. 하지만 데이터베이스에서 모든 테이블을 가져 오는 방법을 모르겠습니다.

나는 명령 발견

SQLiteDatabase db = openOrCreateDatabase("Films", MODE_PRIVATE, null); 
Cursor c = db.rawQuery("SELECT * FROM tablename", null); 

을하지만 그 이름을 알고, 내가 필요로하는 모든 테이블과 그들로부터 데이터를 얻을 수있는 경우는 하나 개의 테이블에 대해서만 작동합니다.

제발 도와 주실 수 있나요?

답변

2

실행이를 사용하여 쿼리 :

Cursor c = db.rawQuery("SELECT * FROM films.sqlite_master WHERE type='table'",null); 

편집

나는이 안드로이드와 rawQuery 이미 테이블 이름을 가진 것을 잊어 버렸습니다. 이게 작동해야합니다 :

Cursor c = db.rawQuery("SELECT * FROM sqlite_master WHERE type='table'",null); 
+0

오, 내가 이것을 시도했지만 DDMS "아니오 such films.sqlite_master"라고하므로 테이블 이름 films.sqlite_master라고 생각합니다. –

+0

좋습니다, "SELECT * FROM sqlite_master where type = 'table'"'대신에. 우리가 안드로이드에 대해 구체적으로 말하고 있다는 것을 잊어 버렸습니다. – Barak

+0

대단히 감사합니다! 이제이 표를 정렬하는 방법과 표를 정렬하는 방법에 대해 생각할 것입니다. –

관련 문제