2011-03-08 3 views
-1

두 개의 열이있는 SQLite 프로그램을 만들었습니다. 그것은 완벽하게 실행됩니다. 위에 같은 테이블을 가지고있는 다른 열을 추가 한 후에 오류가 발생했습니다. 왜 이런 일이 일어 났습니까?SQLite 테이블에 열을 추가 할 때 왜이 오류가 발생합니까?

스택 추적 :

03-08 09:16:59.570: ERROR/AndroidRuntime(247): Uncaught handler: thread main exiting due to uncaught exception 
03-08 09:16:59.621: ERROR/AndroidRuntime(247):  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mb.demo/com.mb.demo.DemoActivity}: android.database.sqlite.SQLiteException: table table1 has no column named logitude: , while compiling: insert into table1(name,address,logitude,latitude,contact)values(?,?,?,?,?) 
03-08 09:16:59.621: ERROR/AndroidRuntime(247): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496) 
+0

예외는 모두 'android.database.sqlite.SQLiteException : 테이블 table1에 logitude :라는 컬럼이 없습니다. 컴파일 중에 : insert into table1'이라고 말합니다. 추가 한 것으로 생각되는 열은 실제로 데이터베이스에 추가되지 않습니다. BTW, 열을 어떻게 추가 했습니까? – Mudassir

+0

네,하지만 왜 같은 테이블을 만들 수 없습니까? – user1402876

답변

2

이 놀라 울 정도로 질문처럼 난 그냥 여기에 대한 답변 : SQLite Database (why do this?)

당신이에서 onCreate() 메소드의 테이블에 열을 추가하는 경우, 당신은 할 수 있습니다 데이터베이스 버전을 업그레이드하거나 onCreate()가 실제로 실행될 수 있도록 앱의 사용자 데이터를 삭제합니다. 그렇지 않으면 앱이 실행되고 이름이 이미 동일한 데이터베이스와 2 열만있는 테이블이있는 동일한 버전이 표시되며 onCreate()를 건너 뛰므로 테이블이 다시 만들어지지 않으며 삽입 실패합니다.

편집 : 또 다른 가능성은 'logitude'오자가 문제를 일으켰습니다. 테이블 열 이름의 철자가 '경도'로 정확하게 표기된 경우 위에 언급 한 것처럼 삽입이 실패합니다.

관련 문제