2012-05-08 1 views
0

Iam пытается вернуть данные (данные хранимых упражнений: имя, период, сжигаемые калории, которые были воспроизведены пользователем в определенную дату) из базы данных Sqlite в моем приложении для Android, но исключение которые являются:синтаксическая ошибка при компиляции: инструкция SELECT из Sqlite

android.database.sqlite.SQLiteException: near ",": syntax error: , while compiling: SELECT Name, Period, Burned_Calories FROM Exercise WHERE Date = Tuesday, 8/May/2012 

Почему это исключение возникает, и как я могу его решить? пожалуйста, помогите мне ..

это мой код:

DBAdapter db = new DBAdapter(this); 
db.open(); 
String selected_date= date_btn.getText().toString(); 

Cursor c = db.getExerciseInfo(selected_date); 

if (c.moveToFirst()) 
{ 
    do 
    { 
    Toast.makeText(this ,"Name: "+ c.getString(0) + "\n" + "Period:" +c.getFloat(1)+ "\n" + " burned cals:" +c.getFloat(2)+ "\n" ,Toast.LENGTH_LONG).show(); 
    } 
    while (c.moveToNext()); 

    } 
    db.close(); 

это мой метод в DBAdapter Calss

public Cursor getExerciseInfo(String date) throws SQLException 
     { 
     Cursor C_excer = db.query(EXERCISE_TABLE_NAME, new String[]  {KEY_NAME,KEY_PERIOD,KEY_BURNEDCALS},KEY_DATE +" = " + date, null, null, null, null); 
      if (C_excer != null) { 
     C_excer.moveToFirst(); 
      } 
     return C_excer; 
      } 

ответ

0

Try обернуть вокруг даты кавычки: '' , как это:

Cursor C_excer = db.query(EXERCISE_TABLE_NAME, new String[] { KEY_NAME,KEY_PERIOD, KEY_BURNEDCALS}, KEY_DATE + " = '" + date + "'", null, null, null, null); 
+0

спасибо , но когда я его пробовал, возникает ошибка, которая является недопустимой символьной константой, почему это так? – user

+0

@ user88 Пожалуйста, опубликуйте все новое сообщение об ошибке. –

+0

Неверная символьная константа появляется как сообщение об ошибке, а не в журнале, так как я не могу запустить мое приложение из-за этой ошибки «когда я пытаюсь запустить мое приложение, он говорит, что ваше приложение содержит ошибки, исправить их», я не знаю, как объяснить этот тип ошибка, понимаете меня? – user

0

Это своего рода трудно сказать, от того, что вы в курсе, но ваш где положение выглядит подозрительно:

WHERE Date = Tuesday, 8/May/2012 -- boom! 

Попробуйте изменить это:

WHERE Date = 'Tuesday, 8/May/2012' 
0

Не эксперт, но, возможно, вам нужны некоторые котировки:

android.database.sqlite.SQLiteException: near ",": syntax error: , while compiling: SELECT Name, Period, Burned_Calories FROM Exercise WHERE Date = "Tuesday, 8/May/2012" 
Смежные вопросы