Android的数据库中的数据检索我不可能我不、数据库中、数据、Android

2023-09-04 23:27:11 作者:捧猫少女

Android的SQLite的游标问题在cur3 = db3.rawQuery下面是我的logcat错误和全班code。我现在面临的问题在检索的基础上比较两个表和第一pretestTable表的主键(pretest_id)数据。我不理解什么是错误的,我的SQL查询。

logcat的错误:

  10-20 21:55:28.203:ERROR / AndroidRuntime(2192):java.lang.RuntimeException的:无法启动的活动ComponentInfo {com.a1technology.remoteid / com.a1technology。 remoteid.Screening}:android.database.sqlite.SQLiteException:近WHERE:语法错误:在编制:选择tbl_ pre_test.ID AS _id,tbl_ pre_test.ddlTestingSession,tbl_ pre_test。 txtReason,tbl_ pre_test.txthowmany,tbl_ pre_test.txtques1,tbl_ pre_test.rblques2a,tbl_ pre_test.rblques2b,tbl_ pre_test.rblques3,tbl_ pre_test.txtques4, tbl_ pre_test.rblques5,tbl_ pre_test.rblques6,tbl_ pre_test.rblques7,tbl_ pre_test.rblques8,tbl_ pre_test.rblques9,tbl_ pre_test.ddlsick,tbl_ pre_test.txtques11,tbl_ pre_test.rblques12,tbl_ pre_test.txtques13,tbl_ pre_test.txtques14,tbl_ pre_test.rblques15,tbl_ pre_test.rblques16,tbl_ pre_test.rblques17,tbl_ pre_test.txtques18,tbl_ pre_test.txtVCT,其中tbl_ pre_test.ID = tbl_finger.template和tbl_ pre_test。pretest_id =?
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1622)
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638)
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):在android.app.ActivityThread.access $ 1500(ActivityThread.java:117)
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:928)
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):在android.os.Handler.dispatchMessage(Handler.java:99)
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):在android.os.Looper.loop(Looper.java:123)
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):在android.app.ActivityThread.main(ActivityThread.java:3647)
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):在java.lang.reflect.Method.invokeNative(本机方法)
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):在java.lang.reflect.Method.invoke(Method.java:507)
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:839)
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):在dalvik.system.NativeStart.main(本机方法)
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):由:android.database.sqlite.SQLiteException:近WHERE:语法错误:在编制:选择tbl_ pre_test.ID AS _id, tbl_ pre_test.ddlTestingSession,tbl_ pre_test.txtReason,tbl_ pre_test.txthowmany,tbl_ pre_test.txtques1,tbl_ pre_test.rblques2a,tbl_ pre_test.rblques2b,tbl_ pre_test.rblques3,tbl_ pre_test.txtques4,tbl_ pre_test.rblques5,tbl_ pre_test.rblques6,tbl_ pre_test.rblques7,tbl_ pre_test.rblques8,tbl_ pre_test.rblques9,tbl_ pre_test.ddlsick,tbl_ pre_test.txtques11,tbl_ pre_test.rblques12,tbl_ pre_test.txtques13,tbl_ pre_test.txtques14,tbl_ pre_test。 rblques15,tbl_ pre_test.rblques16,tbl_ pre_test.rblques17,tbl_ pre_test.txtques18,tbl_ pre_test.txtVCT,其中tbl_ pre_test.ID = tbl_finger.template和tbl_ pre_test。pretest_id =?
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):在android.database.sqlite.SQLiteCompiledSql.native_compile(本机方法)
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):在android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:92)
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):在android.database.sqlite.SQLiteCompiledSql< INIT>(SQLiteCompiledSql.java:65)
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):在android.database.sqlite.SQLiteProgram< INIT>(SQLiteProgram.java:83)
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):在android.database.sqlite.SQLiteQuery< INIT>(SQLiteQuery.java:49)
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):在android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:42)
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):在android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1356)
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):在android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1324)
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):在com.a1technology.remoteid.Screening.onCreate(Screening.java:320)
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1586)
10-20 21:55:28.203:ERROR / AndroidRuntime(2192):11 ...更多
 

类code:

 静态最后弦乐pretestTable =tbl_ pre_test;
        公共静态最后弦乐ColumnID的=ID;
        公共静态最后弦乐DDL_Testing_Session =ddlTestingSession;
        公共静态最后弦乐Text_Reason =txtReason;
        公共静态最后弦乐Text_Howmany =txthowmany;
        公共静态最后弦乐Text_Ques1 =txtques1;
        公共静态最后弦乐RBL_Ques2a =rblques2a;
        公共静态最后弦乐RBL_Ques2b =rblques2b;
        公共静态最后弦乐RBL_Ques3 =rblques3;
        公共静态最后弦乐TXT_Ques4 =txtques4;
        公共静态最后弦乐RBL_Ques5 =rblques5;
        公共静态最后弦乐RBL_Ques6 =rblques6;
        公共静态最后弦乐RBL_Ques7 =rblques7;
        公共静态最后弦乐RBL_Ques8 =rblques8;
        公共静态最后弦乐RBL_Ques9 =rblques9;
        公共静态最后弦乐DDL_Sick =ddlsick;
        公共静态最后弦乐TXT_Ques11 =txtques11;
        公共静态最后弦乐RBL_Ques12 =rblques12;
        公共静态最后弦乐TXT_Ques13 =txtques13;
        公共静态最后弦乐TXT_Ques14 =txtques14;
        公共静态最后弦乐RBL_Ques15 =rblques15;
        公共静态最后弦乐RBL_Ques16 =rblques16;
        公共静态最后弦乐RBL_Ques17 =rblques17;
        公共静态最后弦乐TXT_Ques18 =txtques18;
        公共静态最后弦乐pretest_id =pretestID;
        公共静态最后弦乐TXT_Vct =txtVCT;


        静态最后弦乐fingerTable =tbl_finger;
        公共静态最后弦乐fingerTableColumnID =ID;
        公共静态最后弦乐模板=模板;


    静态布尔addrow = FALSE;
    静态INT buttonCounter;
    INT请求code;
    私人SQLiteDatabase DB,DB1,DB2,DB3;
    私人DopenHelper帮手;
    字符串表名=tbl_ pre_test;
    字符串TableName1 =tbl_screening;
    字符串TableName2 =tbl_postscreen;
    字符串TableName3 =tbl_finger;
    字符串gotDataScreening1,gotDataScreening2;
    私人字符串valuOfDate,textType,valueOfID,valueOfDDLTS,valueOfReason,valueOfHowmany,valueOftxtques1,valueOfrblques2a
    ,valueOfrblques2b,valueOfrblques3,valueOftxtques4,valueOfrblques5,valueOfrblques6,valueOfrblques7,valueOfrblques8
    ,valueOfrblques9,valueOfddlsick,valueOftxtques11,valueOfrblques12,valueOftxtques13,valueOftxtques14,valueOfrblques15
    ,valueOfrblques16,valueOfrblques17,valueOftxtques18;

    //
    //私人诠释mYear;
    //私人诠释mMonth;
    //私人诠释MDAY;
    TextView的preTestView,ScreeningTextView,PostScreenTV;
    私人simpleefficientadapter arrayadapter11,arrayadapter22,arrayadapter33;
    ListView控件mylist1;
    ListView控件mylist2;
    ListView控件mylist3;
    ArrayList的<字符串> prtestData;
    ArrayList的<字符串> screeningData;
    ArrayList的<字符串> POSTDATA;
    TextView的preTextView,screeTextView,postScreenTextView;
    字符串Date111,Date222,Date333;
    //束束;

    字符串S1;
    字符串s2;
    串S;


    @覆盖
    保护无效的onPause(){
        // TODO自动生成方法存根
        super.onPause();
        db.close();
        db1.close();
        db2.close();
        db3.close();
        helper.close();
    }


    @覆盖
    保护无效的onCreate(包savedInstanceState){
        // TODO自动生成方法存根
        super.onCreate(savedInstanceState);
        // openAndQueryDatabase();
        // displayResultList();
        的setContentView(R.layout.screening);


        辅助=新DopenHelper(Screening.this);
        DB = helper.getWritableDatabase();
        DB1 = helper.getWritableDatabase();
        DB2 = helper.getWritableDatabase();
        DB3 = helper.getWritableDatabase();

        S1 =preE-测试;
        S2 =筛选;
        S3 =POST画面;


        //new_screening=(Button)findViewById(R.id.new_screening);
        main_return =(按钮)findViewById(R.id.main_return);

        mylist1 =(ListView控件)findViewById(R.id. prescreenlist);
        mylist2 =(ListView控件)findViewById(R.id.screeninglist);
        mylist3 =(ListView控件)findViewById(R.id.postscreenlist);
        prtestData =新的ArrayList<字符串>();
        screeningData =新的ArrayList<字符串>();
        POSTDATA =新的ArrayList<字符串>();

        最后的捆绑包= this.getIntent()getExtras()。
        gotDataScreening1 = getIntent()getStringExtra(TransferedMenuData000);
        gotDataScreening2 = getIntent()getStringExtra(TransferedMenuData111);

        main_return.setOnClickListener(新OnClickListener(){

            @覆盖
            公共无效的onClick(查看为arg0){
                // TODO自动生成方法存根
                意图main_return =新的意图(Screening.this,Menu.class);
                startActivity(main_return);
            }
        });


        preTextView =(TextView中)findViewById(R.id.birth_text11);
        screeTextView =(TextView中)findViewById(R.id.birth_text12);
        postScreenTextView =(TextView中)findViewById(R.id.birth_text13);

        preTextView.setOnClickListener(新View.OnClickListener(){

            @覆盖
            公共无效的onClick(视图v){
                // TODO自动生成方法存根
                意图newIntent =新的意图(Screening.this,NewScreening.class);
                 bundle.putString(FinalDataScreen1,gotDataScreening1);
                 bundle.putString(FinalDataScreen2,gotDataScreening2);
                 newIntent.putExtras(包);
                 startActivityForResult(newIntent,要求code);

            }
        });

        screeTextView.setOnClickListener(新View.OnClickListener(){

            @覆盖
            公共无效的onClick(视图v){

                意图simpleIntent =新的意图(Screening.this,SimpleScreening.class);
                 bundle.putString(FinalDataScreen1,gotDataScreening1);
                 bundle.putString(FinalDataScreen2,gotDataScreening2);
                 simpleIntent.putExtras(包);
                 startActivityForResult(simpleIntent,要求code);

            }
        });

        postScreenTextView.setOnClickListener(新View.OnClickListener(){

            @覆盖
            公共无效的onClick(视图v){
                // TODO自动生成方法存根
                意图postIntent =新的意图(Screening.this,PostScreening.class);
                bundle.putString(FinalDataScreen1,gotDataScreening1);
                bundle.putString(FinalDataScreen2,gotDataScreening2);
                postIntent.putExtras(包);
                startActivityForResult(postIntent,1);

            }
        });
        // +++++++++++++++++++++知道SQLite数据库版本添加者穆拉利++++++++++++++++++ ++++++++++++

        / *光标光标= SQLiteDatabase.openOrCreateDatabase(:记忆:空).rawQuery(选择sqlite_version()作为sqlite_version,NULL);
        {
        字符串sqliteVersion =;
        而(cursor.moveToNext()){
           sqliteVersion + = cursor.getString(0);
           Log.v(SQL版本,cursor.getString(0));
            }

        } cursor.close(); * /
        // +++++++++++++++++ code完以上$ C $下知道的SQLite的版本++++++++++++++++ +++++++++++++++

        // +++++++++++++++++++++低于code对于Retriving数据库中的数据+++++++++++++++++ +++++++++


        光标CUR = db.rawQuery(选择pretestID,日期,txtVCT FROM+表名,NULL);


        尝试 {

            DB = this.openOrCreateDatabase(remoteid.db,MODE_PRIVATE,NULL);

            如果(CUR!= NULL)
            {
                如果(cur.moveToFirst())
                {
                    做 {
                        字符串valuOfDate = cur.getString(cur.getColumnIndex(日期));
                        串textType = cur.getString(cur.getColumnIndex(txtVCT));
                        字符串valueOfID = cur.getString(cur.getColumnIndex(pretestID));
                        //Toast.makeText(getApplicationContext(),valueOfID,Toast.LENGTH_SHORT).show();

                        prtestData.add(valuOfDate);


                    }而(cur.moveToNext());
                }
            }

        }

        赶上(例外五){
            Log.e(错误,错误,E);

        } 最后 {
            如果(DB!= NULL)
                db.close();

        }

        cur.close();


        光标CUR1 = db1.rawQuery(+ TableName1,空从中选择日期);


        尝试 {

            DB1 = this.openOrCreateDatabase(remoteid.db,MODE_PRIVATE,NULL);

            如果(CUR1!= NULL)
            {
                如果(cur1.moveToFirst())
                {
                    做 {
                        字符串valuOfDate1 = cur1.getString(cur1.getColumnIndex(日期));

                        //Toast.makeText(getApplicationContext(),valueOfID,Toast.LENGTH_SHORT).show();

                        screeningData.add(valuOfDate1);

                    }而(cur1.moveToNext());
                }
            }

        }

        赶上(例外五){
            Log.e(错误,错误,E);

        } 最后 {
            如果(DB1!= NULL)
                db1.close();

        }

        cur1.close();


        光标cur2 = db2.rawQuery(+ TableName2,空从中选择日期);


        尝试 {

            DB2 = this.openOrCreateDatabase(remoteid.db,MODE_PRIVATE,NULL);

            如果(cur2!= NULL)
            {
                如果(cur2.moveToFirst())
                {
                    做 {
                        字符串valuOfDate2 = cur2.getString(cur2.getColumnIndex(日期));
                        //Toast.makeText(getApplicationContext(),valuOfDate2,Toast.LENGTH_SHORT).show();

                        postData.add(valuOfDate2);


                    }而(cur2.moveToNext());
                }
            }

        }

        赶上(例外五){
            Log.e(错误,错误,E);

        } 最后 {
            如果(DB2!= NULL)
                db2.close();

        }

        cur2.close();


        光标cur3 = db3.rawQuery(选择+ pretestTable +。+ + ColumnID的AS _id,+
                + pretestTable +。+ DDL_Testing_Session +,+
                + pretestTable +。+ Text_Reason +,+
                + pretestTable +。+ Text_Howmany +,+
                + pretestTable +。+ Text_Ques1 +,+
                + pretestTable +。+ RBL_Ques2a +,+
                + pretestTable +。+ RBL_Ques2b +,+
                + pretestTable +。+ RBL_Ques3 +,+
                + pretestTable +。+ TXT_Ques4 +,+
                + pretestTable +。+ RBL_Ques5 +,+
                + pretestTable +。+ RBL_Ques6 +,+
                + pretestTable +。+ RBL_Ques7 +,+
                + pretestTable +。+ RBL_Ques8 +,+
                + pretestTable +。+ RBL_Ques9 +,+
                + pretestTable +。+ DDL_Sick +,+
                + pretestTable +。+ TXT_Ques11 +,+
                + pretestTable +。+ RBL_Ques12 +,+
                + pretestTable +。+ TXT_Ques13 +,+
                + pretestTable +。+ TXT_Ques14 +,+
                + pretestTable +。+ RBL_Ques15 +,+
                + pretestTable +。+ RBL_Ques16 +,+
                + pretestTable +。+ RBL_Ques17 +,+
                + pretestTable +。+ TXT_Ques18 +,+
                + pretestTable +。+ TXT_Vct +,+WHERE+ pretestTable +。+ ColumnID的+=+ fingerTable +。+模板+和+ pretestTable +。 +pretest_id =? ,  空值);

                //+ pretestTable +。+ TXT_Vct +,+WHERE+ pretestTable +。+ ColumnID的+=+ fingerTable +。+模板+和+pretest_id =? ,  空值);

        尝试 {

            DB3 = this.openOrCreateDatabase(remoteid.db,MODE_PRIVATE,NULL);

            如果(cur3!= NULL)
            {
              如果(cur3.moveToFirst())
                {
                    做 {
                        valueOfID = cur3.getString(cur3.getColumnIndex(pretestID));
                         valuOfDate = cur3.getString(cur3.getColumnIndex(日期));
                         textType = cur3.getString(cur3.getColumnIndex(txtVCT));
                         valueOfDDLTS = cur3.getString(cur3.getColumnIndex(ddlTestingSession));
                         valueOfReason = cur3.getString(cur3.getColumnIndex(txtReason));
                         valueOfHowmany = cur3.getString(cur3.getColumnIndex(txthowmany));
                         valueOftxtques1 = cur3.getString(cur3.getColumnIndex(txtques1));
                         valueOfrblques2a = cur3.getString(cur3.getColumnIndex(rblques2a));
                         valueOfrblques2b = cur3.getString(cur3.getColumnIndex(rblques2b));
                         valueOfrblques3 = cur3.getString(cur3.getColumnIndex(rblques3));
                         valueOftxtques4 = cur3.getString(cur3.getColumnIndex(txtques4));
                         valueOfrblques5 = cur3.getString(cur3.getColumnIndex(rblques5));
                         valueOfrblques6 = cur3.getString(cur3.getColumnIndex(rblques6));
                         valueOfrblques7 = cur3.getString(cur3.getColumnIndex(rblques7));
                         valueOfrblques8 = cur3.getString(cur3.getColumnIndex(rblques8));
                         valueOfrblques9 = cur3.getString(cur3.getColumnIndex(rblques9));
                         valueOfddlsick = cur3.getString(cur3.getColumnIndex(ddlsick));
                         valueOftxtques11 = cur3.getString(cur3.getColumnIndex(txtques11));
                         valueOfrblques12 = cur3.getString(cur3.getColumnIndex(rblques12));
                         valueOftxtques13 = cur3.getString(cur3.getColumnIndex(txtques13));
                         valueOftxtques14 = cur3.getString(cur3.getColumnIndex(txtques14));
                         valueOfrblques15 = cur3.getString(cur3.getColumnIndex(rblques15));
                         valueOfrblques16 = cur3.getString(cur3.getColumnIndex(rblques16));
                         valueOfrblques17 = cur3.getString(cur3.getColumnIndex(rblques17));
                         valueOftxtques18 = cur3.getString(cur3.getColumnIndex(txtques18));


                         bundle.getString(valueOfID);
                         bundle.getString(valuOfDate);
                         bundle.getString(textType);
                         bundle.getString(valueOfDDLTS);
                         bundle.getString(valueOfReason);
                         bundle.getString(valueOfHowmany);
                         bundle.getString(valueOftxtques1);
                         bundle.getString(valueOfrblques2a);
                         bundle.getString(valueOfrblques2b);
                         bundle.getString(valueOfrblques3);
                         bundle.getString(valueOftxtques4);
                         bundle.getString(valueOfrblques5);
                         bundle.getString(valueOfrblques6);
                         bundle.getString(valueOfrblques7);
                         bundle.getString(valueOfrblques9);
                         bundle.getString(valueOfddlsick);
                         bundle.getString(valueOftxtques11);
                         bundle.getString(valueOfrblques12);
                         bundle.getString(valueOftxtques13);
                         bundle.getString(valueOftxtques14);
                         bundle.getString(valueOfrblques15);
                         bundle.getString(valueOfrblques16);
                         bundle.getString(valueOfrblques17);
                         bundle.getString(valueOftxtques18);

                    }而(cur3.moveToNext());
                }
            }

        }

        赶上(例外五){
            Log.e(错误,错误,E);

        } 最后 {
            如果(DB3!= NULL)
                db3.close();
        }
        cur3.close();



        arrayadapter11 =新simpleefficientadapter(Screening.this,prtestData);
        arrayadapter22 =新simpleefficientadapter(Screening.this,screeningData);
        arrayadapter33 =新simpleefficientadapter(Screening.this,POSTDATA);

        mylist1.setAdapter(arrayadapter11);
        mylist1.setOnItemClickListener(本);
        mylist2.setAdapter(arrayadapter22);
        mylist2.setOnItemClickListener(本);
        mylist3.setAdapter(arrayadapter33);
        mylist3.setOnItemClickListener(本);
    }


    @覆盖
    公共无效onItemClick(适配器视图<>为arg0,查看ARG1,INT ARG2,长ARG3){
        意向意图;
        开关(arg0.getId()){
        案例R.id. prescreenlist:
            意图=新的意图(getApplicationContext(),NewScreening.class);

            intent.putExtra(则DateValue,valuOfDate);
            intent.putExtra(TT,textType);
            intent.putExtra(idValue,valueOfID);
            intent.putExtra(ddltsValue,valueOfDDLTS);
            intent.putExtra(reasonValue,valueOfReason);
            intent.putExtra(howmanyValue,valueOfHowmany);
            intent.putExtra(textqus1Value,valueOftxtques1);
            intent.putExtra(textqus2aValue,valueOfrblques2a);
            intent.putExtra(textqus2bValue,valueOfrblques2b);
            intent.putExtra(rbqs3Value,valueOfrblques3);
            intent.putExtra(rbqs4Value,valueOftxtques4);
            intent.putExtra(rbqs5Value,valueOfrblques5);
            intent.putExtra(rbqs6Value,valueOfrblques6);
            intent.putExtra(rbqs7Value,valueOfrblques7);
            intent.putExtra(rbqs8Value,valueOfrblques8);
            intent.putExtra(rbqs9Value,valueOfrblques9);
            intent.putExtra(ddlsValue,valueOfddlsick);
            intent.putExtra(tq11Value,valueOftxtques11);
            intent.putExtra(tq12Value,valueOfrblques12);
            intent.putExtra(tq13Value,valueOftxtques13);
            intent.putExtra(tq14Value,valueOftxtques14);
            intent.putExtra(rbqs15Value,valueOfrblques15);
            intent.putExtra(rbqs16Value,valueOfrblques16);
            intent.putExtra(rbqs17Value,valueOfrblques17);
            intent.putExtra(rbqs18Value,valueOftxtques18);

             intent.putExtras(意向);
            startActivity(意向);

             的setResult(RESULT_OK,意图);


            打破;

        案例R.id.screeninglist:
            意图=新的意图(getApplicationContext(),SimpleScreening.class);
            startActivity(意向);

            打破;
        案例R.id.postscreenlist:
            意图=新的意图(getApplicationContext(),PostScreening.class);
            startActivity(意向);

            打破;
        }


    }
}
 

解决方案 android 怎么连接数据库

您已经在你的发言得到了一个额外的,对之前的,其中。此外,如香草指出,你有没有在你的选择。

Android SQLite Cursor Problem at cur3 = db3.rawQuery below is my logcat errors and entire class code. I am facing problem for retreiving data based on comparision on two tables and Primary key(pretest_id) of first pretestTable table. I am not understanding what is the wrong in my SQL query.

Logcat errors:

10-20 21:55:28.203: ERROR/AndroidRuntime(2192): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.a1technology.remoteid/com.a1technology.remoteid.Screening}: android.database.sqlite.SQLiteException: near "WHERE": syntax error: , while compiling: SELECT tbl_pre_test.ID AS _id, tbl_pre_test.ddlTestingSession, tbl_pre_test.txtReason, tbl_pre_test.txthowmany, tbl_pre_test.txtques1, tbl_pre_test.rblques2a, tbl_pre_test.rblques2b, tbl_pre_test.rblques3, tbl_pre_test.txtques4, tbl_pre_test.rblques5, tbl_pre_test.rblques6, tbl_pre_test.rblques7, tbl_pre_test.rblques8, tbl_pre_test.rblques9, tbl_pre_test.ddlsick, tbl_pre_test.txtques11, tbl_pre_test.rblques12, tbl_pre_test.txtques13, tbl_pre_test.txtques14, tbl_pre_test.rblques15, tbl_pre_test.rblques16, tbl_pre_test.rblques17, tbl_pre_test.txtques18, tbl_pre_test.txtVCT, WHERE tbl_pre_test.ID =tbl_finger.template AND tbl_pre_test.pretest_id=?
10-20 21:55:28.203: ERROR/AndroidRuntime(2192):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1622)
10-20 21:55:28.203: ERROR/AndroidRuntime(2192):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638)
10-20 21:55:28.203: ERROR/AndroidRuntime(2192):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
10-20 21:55:28.203: ERROR/AndroidRuntime(2192):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:928)
10-20 21:55:28.203: ERROR/AndroidRuntime(2192):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-20 21:55:28.203: ERROR/AndroidRuntime(2192):     at android.os.Looper.loop(Looper.java:123)
10-20 21:55:28.203: ERROR/AndroidRuntime(2192):     at android.app.ActivityThread.main(ActivityThread.java:3647)
10-20 21:55:28.203: ERROR/AndroidRuntime(2192):     at java.lang.reflect.Method.invokeNative(Native Method)
10-20 21:55:28.203: ERROR/AndroidRuntime(2192):     at java.lang.reflect.Method.invoke(Method.java:507)
10-20 21:55:28.203: ERROR/AndroidRuntime(2192):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
10-20 21:55:28.203: ERROR/AndroidRuntime(2192):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-20 21:55:28.203: ERROR/AndroidRuntime(2192):     at dalvik.system.NativeStart.main(Native Method)
10-20 21:55:28.203: ERROR/AndroidRuntime(2192): Caused by: android.database.sqlite.SQLiteException: near "WHERE": syntax error: , while compiling: SELECT tbl_pre_test.ID AS _id, tbl_pre_test.ddlTestingSession, tbl_pre_test.txtReason, tbl_pre_test.txthowmany, tbl_pre_test.txtques1, tbl_pre_test.rblques2a, tbl_pre_test.rblques2b, tbl_pre_test.rblques3, tbl_pre_test.txtques4, tbl_pre_test.rblques5, tbl_pre_test.rblques6, tbl_pre_test.rblques7, tbl_pre_test.rblques8, tbl_pre_test.rblques9, tbl_pre_test.ddlsick, tbl_pre_test.txtques11, tbl_pre_test.rblques12, tbl_pre_test.txtques13, tbl_pre_test.txtques14, tbl_pre_test.rblques15, tbl_pre_test.rblques16, tbl_pre_test.rblques17, tbl_pre_test.txtques18, tbl_pre_test.txtVCT, WHERE tbl_pre_test.ID =tbl_finger.template AND tbl_pre_test.pretest_id=?
10-20 21:55:28.203: ERROR/AndroidRuntime(2192):     at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
10-20 21:55:28.203: ERROR/AndroidRuntime(2192):     at android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:92)
10-20 21:55:28.203: ERROR/AndroidRuntime(2192):     at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:65)
10-20 21:55:28.203: ERROR/AndroidRuntime(2192):     at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:83)
10-20 21:55:28.203: ERROR/AndroidRuntime(2192):     at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:49)
10-20 21:55:28.203: ERROR/AndroidRuntime(2192):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:42)
10-20 21:55:28.203: ERROR/AndroidRuntime(2192):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1356)
10-20 21:55:28.203: ERROR/AndroidRuntime(2192):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1324)
10-20 21:55:28.203: ERROR/AndroidRuntime(2192):     at com.a1technology.remoteid.Screening.onCreate(Screening.java:320)
10-20 21:55:28.203: ERROR/AndroidRuntime(2192):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-20 21:55:28.203: ERROR/AndroidRuntime(2192):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1586)
10-20 21:55:28.203: ERROR/AndroidRuntime(2192):     ... 11 more

Class Code:

    static final String pretestTable="tbl_pre_test";
        public static final String columnID="ID";
        public static final String DDL_Testing_Session="ddlTestingSession";
        public static final String Text_Reason="txtReason";
        public static final String Text_Howmany="txthowmany";
        public static final String Text_Ques1="txtques1";
        public static final String RBL_Ques2a="rblques2a";
        public static final String RBL_Ques2b="rblques2b";
        public static final String RBL_Ques3="rblques3";
        public static final String TXT_Ques4="txtques4";
        public static final String RBL_Ques5="rblques5";
        public static final String RBL_Ques6="rblques6";
        public static final String RBL_Ques7="rblques7";
        public static final String RBL_Ques8="rblques8";
        public static final String RBL_Ques9="rblques9";    
        public static final String DDL_Sick="ddlsick";
        public static final String TXT_Ques11="txtques11";
        public static final String RBL_Ques12="rblques12";
        public static final String TXT_Ques13="txtques13";
        public static final String TXT_Ques14="txtques14";
        public static final String RBL_Ques15="rblques15";
        public static final String RBL_Ques16="rblques16";
        public static final String RBL_Ques17="rblques17";
        public static final String TXT_Ques18="txtques18";
        public static final String pretest_id="PretestID";
        public static final String TXT_Vct="txtVCT";


        static final String fingerTable="tbl_finger";
        public static final String fingerTableColumnID="ID";
        public static final String Template="template";


    static boolean addrow=false;
    static int buttonCounter;
    int requestCode;
    private SQLiteDatabase db,db1,db2,db3;
    private DopenHelper helper;
    String TableName = "tbl_pre_test";
    String TableName1 = "tbl_screening";
    String TableName2 = "tbl_postscreen";
    String TableName3 = "tbl_finger";
    String gotDataScreening1,gotDataScreening2;
    private String valuOfDate,textType,valueOfID,valueOfDDLTS,valueOfReason,valueOfHowmany,valueOftxtques1,valueOfrblques2a 
    ,valueOfrblques2b,valueOfrblques3,valueOftxtques4,valueOfrblques5,valueOfrblques6,valueOfrblques7,valueOfrblques8 
    ,valueOfrblques9,valueOfddlsick,valueOftxtques11,valueOfrblques12,valueOftxtques13,valueOftxtques14,valueOfrblques15 
    ,valueOfrblques16,valueOfrblques17,valueOftxtques18;

    //  
    //  private int mYear;   
    //  private int mMonth;
    //  private int mDay;
    TextView PreTestView,ScreeningTextView,PostScreenTV;
    private simpleefficientadapter arrayadapter11,arrayadapter22,arrayadapter33;
    ListView mylist1;
    ListView mylist2;
    ListView mylist3;
    ArrayList<String> prtestData;
    ArrayList<String> screeningData;
    ArrayList<String> postData;
    TextView preTextView,screeTextView,postScreenTextView;
    String Date111,Date222,Date333;
    //Bundle bundle;

    String s1;
    String s2;
    String s3;


    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        db.close();
        db1.close();
        db2.close();
        db3.close();
        helper.close();
    }


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        //openAndQueryDatabase();
        //displayResultList();
        setContentView(R.layout.screening);


        helper=new DopenHelper(Screening.this);
        db=helper.getWritableDatabase();
        db1=helper.getWritableDatabase();
        db2=helper.getWritableDatabase();
        db3=helper.getWritableDatabase();

        s1="Pree-Test";
        s2="Screening";
        s3="Post Screen";


        //new_screening=(Button)findViewById(R.id.new_screening);
        main_return=(Button)findViewById(R.id.main_return);

        mylist1=(ListView)findViewById(R.id.prescreenlist);
        mylist2=(ListView)findViewById(R.id.screeninglist);
        mylist3=(ListView)findViewById(R.id.postscreenlist);
        prtestData=new ArrayList<String>();
        screeningData=new ArrayList<String>();
        postData=new ArrayList<String>();

        final Bundle bundle = this.getIntent().getExtras();
        gotDataScreening1 = getIntent().getStringExtra("TransferedMenuData000");
        gotDataScreening2 = getIntent().getStringExtra("TransferedMenuData111");

        main_return.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent main_return=new Intent(Screening.this,Menu.class);
                startActivity(main_return);
            }
        });


        preTextView = (TextView)findViewById(R.id.birth_text11);
        screeTextView = (TextView)findViewById(R.id.birth_text12);
        postScreenTextView =(TextView)findViewById(R.id.birth_text13);

        preTextView.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub          
                Intent newIntent = new Intent(Screening.this, NewScreening.class);
                 bundle.putString("FinalDataScreen1", gotDataScreening1);
                 bundle.putString("FinalDataScreen2", gotDataScreening2);
                 newIntent.putExtras(bundle);
                 startActivityForResult(newIntent, requestCode);

            }
        });

        screeTextView.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                Intent simpleIntent=new Intent(Screening.this,SimpleScreening.class);
                 bundle.putString("FinalDataScreen1", gotDataScreening1);
                 bundle.putString("FinalDataScreen2", gotDataScreening2);
                 simpleIntent.putExtras(bundle);
                 startActivityForResult(simpleIntent, requestCode);

            }
        }); 

        postScreenTextView.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent postIntent=new Intent(Screening.this,PostScreening.class);
                bundle.putString("FinalDataScreen1", gotDataScreening1);
                bundle.putString("FinalDataScreen2", gotDataScreening2);
                postIntent.putExtras(bundle);
                startActivityForResult(postIntent, 1);

            }
        });
        //+++++++++++++++++++++ To Know the SQLite DataBase Version Added By Murali ++++++++++++++++++++++++++++++

        /*Cursor cursor = SQLiteDatabase.openOrCreateDatabase(":memory:", null).rawQuery("select sqlite_version() AS sqlite_version", null);
        {
        String sqliteVersion = "";
        while(cursor.moveToNext()){
           sqliteVersion += cursor.getString(0);
           Log.v("SQL Version", cursor.getString(0));
            }   

        }cursor.close();*/
        //+++++++++++++++++ Code Ends Above Code for To Know SQLite Version     +++++++++++++++++++++++++++++++

        //+++++++++++++++++++++ Below COde For Retriving Data From DataBase ++++++++++++++++++++++++++


        Cursor cur = db.rawQuery("SELECT  PretestID,Date,txtVCT FROM " + TableName,  null);


        try {

            db = this.openOrCreateDatabase("remoteid.db", MODE_PRIVATE, null);

            if(cur != null )
            {
                if(cur.moveToFirst())
                {
                    do {
                        String valuOfDate = cur.getString(cur.getColumnIndex("Date"));
                        String textType = cur.getString(cur.getColumnIndex("txtVCT"));
                        String valueOfID =  cur.getString(cur.getColumnIndex("PretestID"));
                        //Toast.makeText(getApplicationContext(), valueOfID, Toast.LENGTH_SHORT).show();

                        prtestData.add(valuOfDate);        


                    }while (cur.moveToNext());
                }
            }

        }

        catch(Exception e) {
            Log.e("Error", "Error", e);

        } finally {
            if (db != null)
                db.close();

        }

        cur.close();


        Cursor cur1 = db1.rawQuery("SELECT  Date FROM " + TableName1,  null);


        try {

            db1  = this.openOrCreateDatabase("remoteid.db", MODE_PRIVATE, null);

            if(cur1 != null )
            {
                if(cur1.moveToFirst())
                {
                    do {
                        String valuOfDate1 = cur1.getString(cur1.getColumnIndex("Date"));

                        //Toast.makeText(getApplicationContext(), valueOfID, Toast.LENGTH_SHORT).show();

                        screeningData.add(valuOfDate1);                           

                    }while (cur1.moveToNext());
                }
            }

        }

        catch(Exception e) {
            Log.e("Error", "Error", e);

        } finally {
            if (db1 != null)
                db1.close();

        }

        cur1.close();


        Cursor cur2 = db2.rawQuery("SELECT  Date FROM " + TableName2,  null);


        try {

            db2  = this.openOrCreateDatabase("remoteid.db", MODE_PRIVATE, null);

            if(cur2 != null )
            {
                if(cur2.moveToFirst())
                {
                    do {
                        String valuOfDate2 = cur2.getString(cur2.getColumnIndex("Date"));
                        //Toast.makeText(getApplicationContext(), valuOfDate2, Toast.LENGTH_SHORT).show();

                        postData.add(valuOfDate2);  


                    }while (cur2.moveToNext());
                }
            }

        }

        catch(Exception e) {
            Log.e("Error", "Error", e);

        } finally {
            if (db2 != null)
                db2.close();

        }

        cur2.close();


        Cursor cur3 = db3.rawQuery("SELECT "+pretestTable+"."+columnID+" AS _id,"+
                " "+pretestTable+"."+DDL_Testing_Session+","+
                " "+pretestTable+"."+Text_Reason+","+
                " "+pretestTable+"."+Text_Howmany+","+
                " "+pretestTable+"."+Text_Ques1+","+
                " "+pretestTable+"."+RBL_Ques2a+","+
                " "+pretestTable+"."+RBL_Ques2b+","+
                " "+pretestTable+"."+RBL_Ques3+","+
                " "+pretestTable+"."+TXT_Ques4+","+
                " "+pretestTable+"."+RBL_Ques5+","+
                " "+pretestTable+"."+RBL_Ques6+","+
                " "+pretestTable+"."+RBL_Ques7+","+
                " "+pretestTable+"."+RBL_Ques8+","+
                " "+pretestTable+"."+RBL_Ques9+","+
                " "+pretestTable+"."+DDL_Sick+","+
                " "+pretestTable+"."+TXT_Ques11+","+
                " "+pretestTable+"."+RBL_Ques12+","+
                " "+pretestTable+"."+TXT_Ques13+","+
                " "+pretestTable+"."+TXT_Ques14+","+
                " "+pretestTable+"."+RBL_Ques15+","+
                " "+pretestTable+"."+RBL_Ques16+","+
                " "+pretestTable+"."+RBL_Ques17+","+
                " "+pretestTable+"."+TXT_Ques18+","+
                " "+pretestTable+"."+TXT_Vct+","+" WHERE " + pretestTable+"."+columnID+" ="+fingerTable+"."+Template+" AND "+pretestTable+"."+"pretest_id=?" ,  null);

                //" "+pretestTable+"."+TXT_Vct+","+" WHERE" + pretestTable+"."+columnID+" ="+fingerTable+"."+Template+"AND" +"pretest_id=?" ,  null);

        try {

            db3  = this.openOrCreateDatabase("remoteid.db", MODE_PRIVATE, null);

            if(cur3 != null )    
            {   
              if(cur3.moveToFirst())
                {
                    do {
                        valueOfID =  cur3.getString(cur3.getColumnIndex("PretestID"));
                         valuOfDate = cur3.getString(cur3.getColumnIndex("Date"));
                         textType = cur3.getString(cur3.getColumnIndex("txtVCT"));                                                      
                         valueOfDDLTS = cur3.getString(cur3.getColumnIndex("ddlTestingSession"));
                         valueOfReason = cur3.getString(cur3.getColumnIndex("txtReason"));
                         valueOfHowmany = cur3.getString(cur3.getColumnIndex("txthowmany"));
                         valueOftxtques1 = cur3.getString(cur3.getColumnIndex("txtques1"));
                         valueOfrblques2a = cur3.getString(cur3.getColumnIndex("rblques2a"));
                         valueOfrblques2b = cur3.getString(cur3.getColumnIndex("rblques2b"));
                         valueOfrblques3 = cur3.getString(cur3.getColumnIndex("rblques3"));
                         valueOftxtques4 = cur3.getString(cur3.getColumnIndex("txtques4"));
                         valueOfrblques5 = cur3.getString(cur3.getColumnIndex("rblques5"));
                         valueOfrblques6 = cur3.getString(cur3.getColumnIndex("rblques6"));
                         valueOfrblques7 = cur3.getString(cur3.getColumnIndex("rblques7"));
                         valueOfrblques8 = cur3.getString(cur3.getColumnIndex("rblques8"));
                         valueOfrblques9 = cur3.getString(cur3.getColumnIndex("rblques9"));
                         valueOfddlsick = cur3.getString(cur3.getColumnIndex("ddlsick"));
                         valueOftxtques11 = cur3.getString(cur3.getColumnIndex("txtques11"));
                         valueOfrblques12 = cur3.getString(cur3.getColumnIndex("rblques12"));
                         valueOftxtques13 = cur3.getString(cur3.getColumnIndex("txtques13"));
                         valueOftxtques14 = cur3.getString(cur3.getColumnIndex("txtques14"));
                         valueOfrblques15 = cur3.getString(cur3.getColumnIndex("rblques15"));
                         valueOfrblques16 = cur3.getString(cur3.getColumnIndex("rblques16"));
                         valueOfrblques17 = cur3.getString(cur3.getColumnIndex("rblques17"));
                         valueOftxtques18 = cur3.getString(cur3.getColumnIndex("txtques18"));


                         bundle.getString(valueOfID);
                         bundle.getString(valuOfDate);
                         bundle.getString(textType);
                         bundle.getString(valueOfDDLTS);
                         bundle.getString(valueOfReason);
                         bundle.getString(valueOfHowmany);
                         bundle.getString(valueOftxtques1);
                         bundle.getString(valueOfrblques2a);
                         bundle.getString(valueOfrblques2b);
                         bundle.getString(valueOfrblques3);
                         bundle.getString(valueOftxtques4);
                         bundle.getString(valueOfrblques5);
                         bundle.getString(valueOfrblques6);
                         bundle.getString(valueOfrblques7);
                         bundle.getString(valueOfrblques9);
                         bundle.getString(valueOfddlsick);
                         bundle.getString(valueOftxtques11);
                         bundle.getString(valueOfrblques12);                         
                         bundle.getString(valueOftxtques13);
                         bundle.getString(valueOftxtques14);
                         bundle.getString(valueOfrblques15);
                         bundle.getString(valueOfrblques16);
                         bundle.getString(valueOfrblques17);
                         bundle.getString(valueOftxtques18); 

                    }while (cur3.moveToNext());
                }
            }

        }

        catch(Exception e) {
            Log.e("Error", "Error", e);

        } finally {
            if (db3 != null)
                db3.close();
        }
        cur3.close();   



        arrayadapter11 = new simpleefficientadapter(Screening.this,prtestData);
        arrayadapter22 = new simpleefficientadapter(Screening.this,screeningData);
        arrayadapter33 = new simpleefficientadapter(Screening.this,postData);

        mylist1.setAdapter(arrayadapter11);
        mylist1.setOnItemClickListener(this);
        mylist2.setAdapter(arrayadapter22);
        mylist2.setOnItemClickListener(this);
        mylist3.setAdapter(arrayadapter33);
        mylist3.setOnItemClickListener(this);
    }


    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        Intent intent;
        switch (arg0.getId()) {
        case R.id.prescreenlist:            
            intent = new Intent(getApplicationContext(), NewScreening.class);       

            intent.putExtra("DateValue", valuOfDate);   
            intent.putExtra("TT", textType);    
            intent.putExtra("idValue", valueOfID);  
            intent.putExtra("ddltsValue", valueOfDDLTS);    
            intent.putExtra("reasonValue", valueOfReason);  
            intent.putExtra("howmanyValue", valueOfHowmany);    
            intent.putExtra("textqus1Value", valueOftxtques1);  
            intent.putExtra("textqus2aValue", valueOfrblques2a);    
            intent.putExtra("textqus2bValue", valueOfrblques2b);    
            intent.putExtra("rbqs3Value", valueOfrblques3); 
            intent.putExtra("rbqs4Value", valueOftxtques4); 
            intent.putExtra("rbqs5Value", valueOfrblques5); 
            intent.putExtra("rbqs6Value", valueOfrblques6); 
            intent.putExtra("rbqs7Value", valueOfrblques7); 
            intent.putExtra("rbqs8Value", valueOfrblques8); 
            intent.putExtra("rbqs9Value", valueOfrblques9); 
            intent.putExtra("ddlsValue", valueOfddlsick);   
            intent.putExtra("tq11Value", valueOftxtques11); 
            intent.putExtra("tq12Value", valueOfrblques12); 
            intent.putExtra("tq13Value", valueOftxtques13); 
            intent.putExtra("tq14Value", valueOftxtques14); 
            intent.putExtra("rbqs15Value", valueOfrblques15);   
            intent.putExtra("rbqs16Value", valueOfrblques16);
            intent.putExtra("rbqs17Value", valueOfrblques17);   
            intent.putExtra("rbqs18Value", valueOftxtques18);       

             intent.putExtras(intent);
            startActivity(intent);

             setResult(RESULT_OK, intent);


            break;

        case R.id.screeninglist:
            intent = new Intent(getApplicationContext(), SimpleScreening.class);
            startActivity(intent);

            break;
        case R.id.postscreenlist:
            intent = new Intent(getApplicationContext(), PostScreening.class);
            startActivity(intent);

            break;
        }


    }
}

解决方案

You've got an extra "," right before your WHERE in your statement. Also, as Herb pointed out you have no FROM in your select.