Android 如何从SQLite查询数据

Android 如何从SQLite查询数据,android,sqlite,Android,Sqlite,这就是我得到句子列表的方式 但是如果我想改变这样写的方式 public Cursor getSen_List(long id_thsen ) { String strTmp = "select " +SENS_TABLE+"."+KEY_SEN_ID+"," +SENS_TABLE+"."+KEY_SEN_ID_TH_SEN+"," +SENS_TABLE+"."+KE

这就是我得到句子列表的方式 但是如果我想改变这样写的方式

public Cursor getSen_List(long id_thsen ) {
    String strTmp = "select "
                    +SENS_TABLE+"."+KEY_SEN_ID+","
                    +SENS_TABLE+"."+KEY_SEN_ID_TH_SEN+","
                    +SENS_TABLE+"."+KEY_SEN_ID_LANG+","
                    +SENS_TABLE+"."+KEY_SEN+","
                    +SENS_TABLE+"."+KEY_SEN_READING+","
                    +" from "+SENS_TABLE+ ","
                    +" where "+SENS_TABLE+"."+KEY_SEN_ID_TH_SEN + "=" +id_thsen+","
                    +null+"," +null+"," +null+"," +null;
                    return db.rawQuery(strTmp,null);}
有什么问题吗?因为它不起作用

请帮忙

这是我的日志

02-10 20:48:18.050:ERROR/AndroidRuntime(818):java.lang.RuntimeException:无法启动活动组件信息{com.android.proj/com.android.proj.Sens_Show}:android.database.sqlite.SQLiteException:接近“from”:语法错误:,编译时:选择句子,来自句子,其中的句子.id_thsen1,null,null,null, 02-10 20:48:18.050:ERROR/AndroidRuntime(818):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 02-10 20:48:18.050:ERROR/AndroidRuntime(818):位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 02-10 20:48:18.050:ERROR/AndroidRuntime(818):在android.app.ActivityThread.access$2300(ActivityThread.java:125) 02-10 20:48:18.050:ERROR/AndroidRuntime(818):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 02-10 20:48:18.050:ERROR/AndroidRuntime(818):位于android.os.Handler.dispatchMessage(Handler.java:99) 02-10 20:48:18.050:ERROR/AndroidRuntime(818):在android.os.Looper.loop(Looper.java:123)上 02-10 20:48:18.050:ERROR/AndroidRuntime(818):位于android.app.ActivityThread.main(ActivityThread.java:4627) 02-10 20:48:18.050:ERROR/AndroidRuntime(818):位于java.lang.reflect.Method.invokenactive(本机方法) 02-10 20:48:18.050:ERROR/AndroidRuntime(818):位于java.lang.reflect.Method.invoke(Method.java:521) 02-10 20:48:18.050:ERROR/AndroidRuntime(818):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 02-10 20:48:18.050:ERROR/AndroidRuntime(818):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 02-10 20:48:18.050:ERROR/AndroidRuntime(818):在dalvik.system.NativeStart.main(本机方法) 02-10 20:48:18.050:ERROR/AndroidRuntime(818):由以下原因引起:android.database.sqlite.SQLiteException:near“from”:语法错误:,编译时:选择句子, 02-10 20:48:18.050:ERROR/AndroidRuntime(818):在android.database.sqlite.SQLiteCompiledSql.native_编译(本机方法) 02-10 20:48:18.050:ERROR/AndroidRuntime(818):在android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:91) 02-10 20:48:18.050:ERROR/AndroidRuntime(818):位于android.database.sqlite.SQLiteCompiledSql。(SQLiteCompiledSql.java:64) 02-10 20:48:18.050:ERROR/AndroidRuntime(818):位于android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:80) 02-10 20:48:18.050:ERROR/AndroidRuntime(818):位于android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:46) 02-10 20:48:18.050:ERROR/AndroidRuntime(818):位于android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:42) 02-10 20:48:18.050:ERROR/AndroidRuntime(818):位于android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345) 02-10 20:48:18.050:ERROR/AndroidRuntime(818):位于android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315) 02-10 20:48:18.050:ERROR/AndroidRuntime(818):位于com.android.proj.DBAdapter.getSen_列表(DBAdapter.java:875) 02-10 20:48:18.050:ERROR/AndroidRuntime(818):位于com.android.proj.Sens_Show.listData(Sens_Show.java:91) 02-10 20:48:18.050:ERROR/AndroidRuntime(818):位于com.android.proj.Sens_Show.onCreate(Sens_Show.java:63) 02-10 20:48:18.050:ERROR/AndroidRuntime(818):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 02-10 20:48:18.050:ERROR/AndroidRuntime(818):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 02-10 20:48:18.050:错误/AndroidRuntime(818):。。。还有11个

试试看

编辑:

“+SENS_TABLE+”中的“
+”,“
不应包含最后一个
+”,“

键识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别号识别

从tblname中选择tblname.key_1、tblname.key_2、tblname.key_3、tblname.key_4、tblname.key_5,其中tblname.key_24、null、null、null

因此,要使其成为有效的SQLite查询,应该使用以下代码

+" from "+SENS_TABLE"
+" where "+SENS_TABLE+"."+KEY_SEN_ID_TH_SEN + "=" +id_thsen+","
其结果是:
“从tblname where tblname.key_2=4中选择tblname.key_1,tblname.key_2,tblname.key_3,tblname.key_4,tblname.key_5”

那么,我所需要的就是有人帮助我==谢谢你的这种态度,你不会得到太多…好吧,检查一下这会产生什么混乱--然后尝试通过sqlite CLI运行它(命令行界面,在PC上的sqlite很好)。发现问题,不客气。请点击旁边的勾号接受答案。这是一种荣幸。这个网站的目标是建立一个很好的答案和回复数据库,并由尝试这些答案的人验证。因此,通过投票并接受问题的答案,您有助于建立更好的数据库。如果你不这样做,人们就会停止回答你的问题。我绝对想投你一票,但我没有足够的声誉,所以很抱歉,你不能点击复选标记接受正确的回答吗?我认为这不需要名誉点数。哦,好吧,我很抱歉,再次感谢你。我接受并检查了马克的回答^^
+" from "+SENS_TABLE"
+" where "+SENS_TABLE+"."+KEY_SEN_ID_TH_SEN + "=" +id_thsen+","
String strTmp = "select "
        +SENS_TABLE+"."+KEY_SEN_ID+","
        +SENS_TABLE+"."+KEY_SEN_ID_TH_SEN+","
        +SENS_TABLE+"."+KEY_SEN_ID_LANG+","
        +SENS_TABLE+"."+KEY_SEN+","
        +SENS_TABLE+"."+KEY_SEN_READING                     
        +" from "+SENS_TABLE
        +" where "+SENS_TABLE+"."+KEY_SEN_ID_TH_SEN + "=" + id_thsen;