gridview를 사용해서 달력을 만들고 거기에서 스케쥴 관리 하는 것을 만들고 있습니다. 그런데 DB가 문제 인지 다음 intent가 적용이 안되고 에러가 뜨면서 앱이 강제 종료 됩니다. 어제 올렸었는데 소스가 너무 지저분하게 나와서 그냥 소스는 파일로 올리겠습니다. ㅜㅜ
그리고 LogCat에 오류를 보면
10-27 11:17:08.143: E/AndroidRuntime(1221): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.calednar/com.android.calednar.TodayActivity}: android.database.sqlite.SQLiteException: no such column: date: , while compiling: SELECT * FROM today WHERE date = '2012/10/19'
이부분이 문제를 해결할 수 있는 답 같은데...뭐가 잘 못 되었는지를 잘 모르겠습니다. today 테이블에 있는 date 부분에 클릭한 날짜의 값을 넣고 하는거 같은데...정확히 맞는지...아무리 DB 쪽 수정을 해보고 해도 답이 안나오네요 ㅜㅜ DB가 생성이 안되고 있다는 것인가요??
일단 소스만 파일로 올리는데....뭔가 문제 인 지좀 ㅜㅜ 아무리 이 방법 저방법을 해도 답이 안나오네요 ㅜㅜ 이부분만 2주 가까이 만지고 있어서 ㅜㅜ
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
10-27 11:17:08.123: I/SqliteDatabaseCpp(1221): sqlite returned: error code = 1, msg = no such column: date, db=/data/data/com.android.calednar/databases/Today.db
10-27 11:17:08.123: D/AndroidRuntime(1221): Shutting down VM
10-27 11:17:08.133: W/dalvikvm(1221): threadid=1: thread exiting with uncaught exception (group=0xb4020180)
10-27 11:17:08.143: E/AndroidRuntime(1221): FATAL EXCEPTION: main
10-27 11:17:08.143: E/AndroidRuntime(1221): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.calednar/com.android.calednar.TodayActivity}: android.database.sqlite.SQLiteException: no such column: date: , while compiling: SELECT * FROM today WHERE date = '2012/10/19'
10-27 11:17:08.143: E/AndroidRuntime(1221): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
10-27 11:17:08.143: E/AndroidRuntime(1221): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
10-27 11:17:08.143: E/AndroidRuntime(1221): at android.app.ActivityThread.access$600(ActivityThread.java:123)
10-27 11:17:08.143: E/AndroidRuntime(1221): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
10-27 11:17:08.143: E/AndroidRuntime(1221): at android.os.Handler.dispatchMessage(Handler.java:99)
10-27 11:17:08.143: E/AndroidRuntime(1221): at android.os.Looper.loop(Looper.java:137)
10-27 11:17:08.143: E/AndroidRuntime(1221): at android.app.ActivityThread.main(ActivityThread.java:4424)
10-27 11:17:08.143: E/AndroidRuntime(1221): at java.lang.reflect.Method.invokeNative(Native Method)
10-27 11:17:08.143: E/AndroidRuntime(1221): at java.lang.reflect.Method.invoke(Method.java:511)
10-27 11:17:08.143: E/AndroidRuntime(1221): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
10-27 11:17:08.143: E/AndroidRuntime(1221): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
10-27 11:17:08.143: E/AndroidRuntime(1221): at dalvik.system.NativeStart.main(Native Method)
10-27 11:17:08.143: E/AndroidRuntime(1221): Caused by: android.database.sqlite.SQLiteException: no such column: date: , while compiling: SELECT * FROM today WHERE date = '2012/10/19'
10-27 11:17:08.143: E/AndroidRuntime(1221): at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
10-27 11:17:08.143: E/AndroidRuntime(1221): at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:68)
10-27 11:17:08.143: E/AndroidRuntime(1221): at android.database.sqlite.SQLiteProgram.compileSql(SQLiteProgram.java:143)
10-27 11:17:08.143: E/AndroidRuntime(1221): at android.database.sqlite.SQLiteProgram.compileAndbindAllArgs(SQLiteProgram.java:361)
10-27 11:17:08.143: E/AndroidRuntime(1221): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:127)
10-27 11:17:08.143: E/AndroidRuntime(1221): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:94)
10-27 11:17:08.143: E/AndroidRuntime(1221): at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:53)
10-27 11:17:08.143: E/AndroidRuntime(1221): at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:47)
10-27 11:17:08.143: E/AndroidRuntime(1221): at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1564)
10-27 11:17:08.143: E/AndroidRuntime(1221): at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1538)
10-27 11:17:08.143: E/AndroidRuntime(1221): at com.android.calednar.TodayActivity.onCreate(TodayActivity.java:51)
10-27 11:17:08.143: E/AndroidRuntime(1221): at android.app.Activity.performCreate(Activity.java:4465)
10-27 11:17:08.143: E/AndroidRuntime(1221): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
10-27 11:17:08.143: E/AndroidRuntime(1221): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
10-27 11:17:08.143: E/AndroidRuntime(1221): ... 11 more
제가 올린 소스에 보며는 DateDB class 에 보면 했습니다...
String DATABASE_CREATE = "CREATE TABLE today(_id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "title TEXT, "
+ "point TEXT, "
+ "date TEXT, "
+ "startTime TEXT, "
+ "endTime TEXT, "
+ "memo TEXT, "
+ "message TEXT);";
제 생각으로는 select가 받아오는 거니깐 calendar 쪽에는 날짜를 클릭하면 클릭한 날짜를 insert 해 주지 않아서 그러는게 아닐까라는 생각 중인데....흠.....
저도 초보자라 잘은 모르겠는데요..
일단은 CalendarActivity에서 intent 생성할때 오타가 있네요. Intent intent = new Intent(this, TodayActivityE.class);
TodayActivity에서 intent.getStringExtra("Param1"); 으로 받아오는 데이터가 정상인지 부터 확인을 해봐야할 것 같아요.
그리고 insert하는 부분은 어디있나요? 주어진 소스에서는 보이지 않는데.. 흠...
님이 말씀하신데로 insert하는 부분에 문제가 있을 것도 같아요.
android.database.sqlite.SQLiteException: no such column: date: , while compiling: SELECT * FROM today WHERE date = '2012/10/19'
select를 시도하는데 에러가 발생했네요.
no such column: date
date라는 column이 존재하지 않는다고 하네요.
SELECT * FROM today WHERE date = '2012/10/19'
일단 today라는 테이블이 있는지 부터 확인을 해봐야 겠구요. (아마 에러가 column에 대해서 떴기 때문에 테이블은 존재할 것 같습니다.)
그렇다면 테이블 생성 질의문을 다시 확인해봐야할 것 같습니다.
create table today ------ 에서 date라는 컬럼을 명시하셨는지 확인을 해주셔야 할 것 같네요.
그리고 다시 확인해보시길 바랍니다.!