Как запросить данные из SQLite - PullRequest
0 голосов
/ 10 февраля 2011
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);}

Так я получаю список предложений но если я хочу изменить способ написать так вместо этого

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);}

Что-то не так? потому что это не работает

, пожалуйста, помогите ........

и это мой logcat ........

02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): java.lang.RuntimeException: невозможно запустить действие ComponentInfo {com.android.proj / com.android.proj.Sens_Show}: android.database. sqlite.SQLiteException: рядом с "from": синтаксическая ошибка: при компиляции: выберите Sentences._id, Sentences.id_thsen, Sentences.id_lang, Sentences.sen, Sentences.reading, из Sentences, где Sentences.id_thsen1, ноль, ноль, ноль ,ноль, 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2663) 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2679) 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): на android.app.ActivityThread.access $ 2300 (ActivityThread.java:125) 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:2033) 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): на android.os.Handler.dispatchMessage (Handler.java:99) 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): на android.os.Looper.loop (Looper.java:123) 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): на android.app.ActivityThread.main (ActivityThread.java:4627) 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): на java.lang.reflect.Method.invokeNative (собственный метод) 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): в java.lang.reflect.Method.invoke (Method.java:521) 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:868) 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:626) 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): в dalvik.system.NativeStart.main (собственный метод) 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): вызвано: android.database.sqlite.SQLiteException: near "from": синтаксическая ошибка: при компиляции: выберите Sentences._id, Sentences.id_thsen, Sentences. id_lang, Sentences.sen, Sentences.reading, из предложений, где Sentences.id_thsen1, ноль, ноль, ноль, ноль, 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): в android.database.sqlite.SQLiteCompiledSql.native_compile (собственный метод) 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): в android.database.sqlite.SQLiteCompiledSql.compile (SQLiteCompiledSql.java:91) 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): в android.database.sqlite.SQLiteCompiledSql. (SQLiteCompiledSql.java:64) 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): в android.database.sqlite.SQLiteProgram. (SQLiteProgram.java:80) 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): в android.database.sqlite.SQLiteQuery. (SQLiteQuery.java:46) 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): в android.database.sqlite.SQLiteDirectCursorDriver.query (SQLiteDirectCursorDriver.java:42) 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): в android.database.sqlite.SQLiteDatabase.rawQueryWithFactory (SQLiteDatabase.java:1345) 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): в android.database.sqlite.SQLiteDatabase.rawQuery (SQLiteDatabase.java:1315) 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): на com.android.proj.DBAdapter.getSen_List (DBAdapter.java:875) 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): на com.android.proj.Sens_Show.listData (Sens_Show.java:91) 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): на com.android.proj.Sens_Show.onCreate (Sens_Show.java:63) 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): на android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1047)02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2627) 02-10 20: 48: 18.050: ОШИБКА / AndroidRuntime (818): ... еще 11

Ответы [ 2 ]

2 голосов
/ 10 февраля 2011

Ваш текущий запрос strTmp приводит к этой строке (со значениями теста):

"выберите tblname.key_1, tblname.key_2, tblname.key_3, tblname.key_4, tblname.key_5, из tblname, где tblname.key_24, ноль, ноль, ноль, ноль,"

Так что, чтобы сделать его действительным запросом SQLite, вы должны использовать этот код

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;

, что приводит к: "выберите tblname.key_1, tblname.key_2, tblname.key_3, tblname.key_4, tblname.key_5 из tblname, где tblname.key_2 = 4"

2 голосов
/ 10 февраля 2011
+" from "+SENS_TABLE"
+" where "+SENS_TABLE+"."+KEY_SEN_ID_TH_SEN + "=" +id_thsen+","

попробуй это.

EDIT:

+" from "+SENS_TABLE+"," не должно иметь последнего +"," а также вы пропускаете + "=" между KEY_SEN_ID_TH_SEN и +id_thsen+","

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...