2016-01-21 2 views
0

Приложения закрываются каждый раз, когда я запускаю его. Когда я проверил logcat, это была ошибка, которая продолжает выходить.SQLiteException: near "=": синтаксическая ошибка (код 1): (закрыто)

android.database.sqlite.SQLiteException: near "=": syntax error (code 1): , while compiling: SELECT * FROM tblresultsWHEREtopid=1ANDusname=fbbh 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2351) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2403) 
     at android.app.ActivityThread.access$600(ActivityThread.java:165) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373) 
     at android.os.Handler.dispatchMessage(Handler.java:107) 
     at android.os.Looper.loop(Looper.java:194) 
     at android.app.ActivityThread.main(ActivityThread.java:5391) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:525) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
     at dalvik.system.NativeStart.main(Native Method) 

Вот мой фрагмент из DBHELPER: TOP_ID инициализируется как строка.

public List<Result> getAllResult() { 


    String qry3 = "SELECT * FROM " + TABLE_RESULT + "WHERE" + TOP_ID + "=" + "1" + "AND" + USER_NAME + "=" + user; 

    Log.e(LOG, qry3); 

    SQLiteDatabase db = this.getReadableDatabase(); 

    Cursor c = db.rawQuery(qry3, null); 

    if (c.moveToFirst()) { 
     do { 
      Result result = new Result(); 
      result.setResultID(c.getInt(c.getColumnIndex(RESULT_ID))); 
      result.setUserName(c.getString(c.getColumnIndex(USER_NAME))); 
      result.setAverage(c.getString(c.getColumnIndex(AVERAGE))); 
      result.setTopicID(c.getString(c.getColumnIndex(TOP_ID))); 

      results.add(result); 
     } while (c.moveToNext()); 
    } 

    return results; 
} 
+1

изменений '«И»' с '» AND "' – Blackbelt

+1

Это самая коммандная ошибка, когда вы абсолютный новичок. – Yogesh

ответ

5

Я думаю, что есть проблема в вашем коде Concat

String qry3 = "SELECT * FROM " + TABLE_RESULT + "WHERE" + TOP_ID + "=" + "1" + "AND" + USER_NAME + "=" + user; 

Я думаю, вы должны добавить пространство между TABLE_RESULT и WHERE и пробел после «WHERE» и то же самое относится и к cocat для AND. Кроме того, если ваш USER_NAME является строкой, то вам нужно будет поместить его в ' Что-то вроде

String qry3 = "SELECT * FROM " + TABLE_RESULT + " WHERE " + TOP_ID + "=" + "1" + " AND " + USER_NAME + "='" + user +"'"; 
+0

Я изменил его, но вот в журнале cat: нет такого столбца: user1 (код 1): при компиляции: SELECT * FROM tblresults WHERE topid = 1 AND usname = user1 – user2204221

+1

@ user2204221 Возможно, у вас нет usname в вашей базе данных. Четко проверьте свою таблицу. –

+0

, когда я использовал для получения всего столбца в таблице, данные были там, но когда я попытался задать конкретный столбец, он продолжает получать ошибку – user2204221

4

Пут зазора для текста в кавычках:

String qry3 = "SELECT * FROM " + TABLE_RESULT + " WHERE " + TOP_ID + " = " + "1" + " AND " + USER_NAME + " = " + user; 
+0

Я изменил его, но вот в журнале cat: нет такого столбца: user1 (код 1): при компиляции: SELECT * FROM tblresults WHERE topid = 1 AND usname = user1 – user2204221

Смежные вопросы