2009-06-01 7 views
16

가능한 중복 : 우리는 안드로이드에서 응용 프로그램을 개발하기 위해 노력하고있다
Android Sqlite - “No Such Table” ErrorSQLite는 예외 : 그런 테이블 오류

. 우리는 SQLite 데이터베이스를 사용하고 우리가 얻는 전화에

SQLiteException : 해당 테이블이 없습니다.

시뮬레이터에서 잘 작동합니다.

아무에게도 입력 할 수 있습니까?

+1

작업? 또한 테이블을 생성하는 코드가 실행되고 있는지 확인 했습니까? 다음 단계는 emualtor에서 sqlite db를 가져 와서 sqlite 데이터베이스 브라우저를 사용하여 테이블이 실제로 존재하는지 확인하는 것입니다. – hacken

+0

안녕하세요! 이미 데이터베이스를 만들고 이미 생성 된 데이터베이스를 사용하기 때문에 테이블이 이미 만들어져 있습니다. 나는 기존 테이블에서 SELECT를하고있다. 내 관심사는 전화가 아닌 시뮬레이터에서 잘 작동하고 있다는 것입니다. –

+0

테이블이 있는지 확인 했습니까? 테이블이 전화기에없는 것은 작동하지 않는 것보다 훨씬 더 가능성이 큽니다. 다시 한번 DB가 올바르게 생성되었는지 확인하는 것은 매우 쉽습니다. – hacken

답변

14

데이터베이스 파일 이름을 올바르게 지정하지 않으면 빈 데이터베이스를 만드는 것으로 바뀝니다. 이것은 일반적으로 '테이블을 찾을 수 없음'의 원인입니다. 경로 및 데이터베이스 파일 이름을 확인하십시오.

+1

예 : data @ base-db를 사용 했으므로 db는 생성되지 않습니다[email protected] database-db와 같은 것을 제거한 후에, 그것은 나를 위해 작동합니다 .... :) 힌트를 주셔서 감사합니다 ... – PrinceMidha

2

일부 사람들은 here과 같은 단계를 사용하여 문제를 해결할 수있었습니다. 이 문제는 특정 버전의 Android 2.2에 발생합니다. 이 코드는 실제로 베타 테스터가 실제로 작동하는지 확인하려고하지만 코드에이 변경 사항을 통합했습니다.

6

나는 동일한 문제의 다른 취향에 직면했다.

삽입하려고 시도했을 때 no such table 오류가 발생했습니다.

삽입하기 전에, 코드라는 처음 나는이 한 OnCreate 방법

public void onCreate(SQLiteDatabase db) { 

      db.execSQL(DATABASE_CREATE); 
      Log.v("INFO1","creating db"); 
      //Toast.makeText(mCtx, "created", Toast.LENGTH_SHORT).show(); 
     } 
내에서 테이블을 작성하는 내 SQL 쿼리를했다 onCreate()

호출

getWritableDatabase()

mDb = mDbHelper.getWritableDatabase(); 
를 호출했다

나에게있어서 일어난 일은 응용 프로그램이 처음 실행될 때 db이 성공적으로 생성 된 것입니다. 다른 오류로 인해 표가 없습니다. 응용 프로그램이 실행될 때마다 나중에 db이 호출되어 테이블이 작성되지 않으므로 onCreate()이 호출되지 않으므로 모든 SQL 명령이 실패합니다.

그래서 나는 onCreate()에서 테이블을 생성 이동하고, 지금은 당신이 깨끗한 에뮬레이터에서 코드를 실행 한

+1

그러면 어떻게 db를 oncreate 외부에서 찾았습니까? –