jeudi 16 juillet 2015

Android sqlite - select records with multiple colum with WHERE and AND condition

i am new to SQLLite and ANDROID.

i am trying to get the values from the database and store it in to a array list.

I am having a problem with the where condition. I tried to solve the problem like this. but its not working.

 public List<Items> getAllitemsforviews(int id) {
        List<Items> listItems = new ArrayList<Items>();


        Cursor cursor = mDatabase.query(DBHelper.TABLE_ITEM, mAllColumns,
                String.valueOf("itm_visit_id, item_remote_status"),
                new String[]{String.valueOf(id), String.valueOf(1)}, null, null, null);


//        Cursor cursor = mDatabase.query(DBHelper.TABLE_ITEM, mAllColumns,
//                DBHelper.COLUMN_ITEM_VISIT_ID + " = ?",
//                new String[]{String.valueOf(id)}, null, null, null);


        if (cursor != null) {
            cursor.moveToFirst();
            while (!cursor.isAfterLast()) {
                Items items = cursorToitems(cursor);
                listItems.add(items);
                cursor.moveToNext();
            }

            // make sure to close the cursor

            cursor.close();
        }
        return listItems;
    }

Error stack.

07-16 15:30:11.776  23230-23230/lk.agent.certislanka.certisagenttracking E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: lk.agent.certislanka.certisagenttracking, PID: 23230
    java.lang.RuntimeException: Unable to start activity ComponentInfo{lk.agent.certislanka.certisagenttracking/lk.agent.certislanka.certisagenttracking.Item_Activity}: android.database.sqlite.SQLiteException: near ",": syntax error (code 1): , while compiling: SELECT item_id, itm_visit_id, item_name, item_check_status, item_comment, item_latitude, item_longitude, item_submit_time, item_remote_status FROM items WHERE itm_visit_id, item_remote_status
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2327)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2378)
            at android.app.ActivityThread.access$800(ActivityThread.java:155)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5433)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: android.database.sqlite.SQLiteException: near ",": syntax error (code 1): , while compiling: SELECT item_id, itm_visit_id, item_name, item_check_status, item_comment, item_latitude, item_longitude, item_submit_time, item_remote_status FROM items WHERE itm_visit_id, item_remote_status
            at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
            at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1112)
            at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:689)
            at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
            at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
            at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
            at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
            at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1433)
            at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1280)
            at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1151)
            at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1319)
            at lk.agent.certislanka.certisagenttracking.data.ItemsDAO.getAllitemsforviews(ItemsDAO.java:119)
            at lk.agent.certislanka.certisagenttracking.Item_Activity.list_all_items(Item_Activity.java:43)
            at lk.agent.certislanka.certisagenttracking.Item_Activity.onCreate(Item_Activity.java:36)
            at android.app.Activity.performCreate(Activity.java:5301)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2291)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2378)
            at android.app.ActivityThread.access$800(ActivityThread.java:155)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5433)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
            at dalvik.system.NativeStart.main(Native Method)

Can someone help me to write this where condition. TnX.

Aucun commentaire:

Enregistrer un commentaire