ase 2: // SELECT * 일때
adapt = new SimpleCursorAdapter(
this,
android.R.layout.simple_list_item_2,
c,
new String[] {"name","age"},
new int[] {android.R.id.text1,android.R.id.text2}
);
setListAdapter(adapt);
if (db != null) {
db.close();
}
break;
case 3: //SELECT 가 하나일때
adapt = new SimpleCursorAdapter(
this,
android.R.layout.simple_list_item_1,
c,
new String[] {"name"},
new int[] {android.R.id.text1}
);
setListAdapter(adapt);
if (db != null) {
db.close();
}
break;
쿼리를 입력받아서 출력해주는 코드를 짜고있는데요.
DB필드는 _id , name ,age 가 있어요.
case2 (SELECT * ) 로 출력을하면 잘되거든요?
Ex) SELECT * FROM people
그런데 case3 (SELECT name)을 이용해서 출력을 하면 바로 오류가 발생하네요.
Ex) SELECT name FROM people
10-21 21:41:28.542: E/AndroidRuntime(722): FATAL EXCEPTION: main
10-21 21:41:28.542: E/AndroidRuntime(722): java.lang.IllegalStateException: Could not execute method of the activity
10-21 21:41:28.542: E/AndroidRuntime(722): at android.view.View$1.onClick(View.java:2072)
10-21 21:41:28.542: E/AndroidRuntime(722): at android.view.View.performClick(View.java:2408)
10-21 21:41:28.542: E/AndroidRuntime(722): at android.view.View$PerformClick.run(View.java:8816)
10-21 21:41:28.542: E/AndroidRuntime(722): at android.os.Handler.handleCallback(Handler.java:587)
10-21 21:41:28.542: E/AndroidRuntime(722): at android.os.Handler.dispatchMessage(Handler.java:92)
10-21 21:41:28.542: E/AndroidRuntime(722): at android.os.Looper.loop(Looper.java:123)
10-21 21:41:28.542: E/AndroidRuntime(722): at android.app.ActivityThread.main(ActivityThread.java:4627)
10-21 21:41:28.542: E/AndroidRuntime(722): at java.lang.reflect.Method.invokeNative(Native Method)
10-21 21:41:28.542: E/AndroidRuntime(722): at java.lang.reflect.Method.invoke(Method.java:521)
10-21 21:41:28.542: E/AndroidRuntime(722): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-21 21:41:28.542: E/AndroidRuntime(722): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-21 21:41:28.542: E/AndroidRuntime(722): at dalvik.system.NativeStart.main(Native Method)
10-21 21:41:28.542: E/AndroidRuntime(722): Caused by: java.lang.reflect.InvocationTargetException
10-21 21:41:28.542: E/AndroidRuntime(722): at vr.ex4.db.SqlAct.onClickButton(SqlAct.java:117)
10-21 21:41:28.542: E/AndroidRuntime(722): at java.lang.reflect.Method.invokeNative(Native Method)
10-21 21:41:28.542: E/AndroidRuntime(722): at java.lang.reflect.Method.invoke(Method.java:521)
10-21 21:41:28.542: E/AndroidRuntime(722): at android.view.View$1.onClick(View.java:2067)
10-21 21:41:28.542: E/AndroidRuntime(722): ... 11 more
10-21 21:41:28.542: E/AndroidRuntime(722): Caused by: java.lang.IllegalArgumentException: column '_id' does not exist
10-21 21:41:28.542: E/AndroidRuntime(722): at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:314)
10-21 21:41:28.542: E/AndroidRuntime(722): at android.support.v4.widget.CursorAdapter.init(CursorAdapter.java:174)
10-21 21:41:28.542: E/AndroidRuntime(722): at android.support.v4.widget.CursorAdapter.<init>(CursorAdapter.java:122)
10-21 21:41:28.542: E/AndroidRuntime(722): at android.support.v4.widget.ResourceCursorAdapter.<init>(ResourceCursorAdapter.java:54)
10-21 21:41:28.542: E/AndroidRuntime(722): at android.support.v4.widget.SimpleCursorAdapter.<init>(SimpleCursorAdapter.java:63)
10-21 21:41:28.542: E/AndroidRuntime(722): ... 15 more
이렇게 나오는데요.
오류 내용중에 하나를 보니 _id가 없다고 하더라구요. 데이터베이스에는 (_id ,name ,age 가 있음)
도대체 어떻게 고쳐야될지 감이 안잡히네요 ㅠㅠ 혹시 도움좀 주실수 있으신분 계신가요?