2015-03-10 3 views
0

Мне очень нужна ваша помощь. У меня проблема с получением значений из базы данных. У меня есть два editTexts и один Button. Когда я вставляю даты и нажимаю Button, моя таблица открывается без данных. Как я могу получить для моей базы данных эти значения editText?Выберите диапазон дат от sqlite

Мой код:

String val1=minDate.getText().toString(); 

String val2=maxDate.getText().toString(); 

Cursor c=database.rawQuery("SELECT * from TABLE WHERE DATE BETWEEN '"+ val1+"' AND '"+ val2+"' ", null); 
+0

Ваш вопрос не ясен для меня. Не могли бы вы объяснить, что вам нужно? – IshRoid

+0

У меня есть таблица, где есть дата столбца, я хочу, чтобы пользователь мог выбрать maxdate и mindate (range), который он хочет видеть. –

+0

Тогда ваш запрос должен работать. Какая у вас проблема с этим – IshRoid

ответ

1

Пожалуйста, обратитесь к документации: http://developer.android.com/guide/topics/data/data-storage.html#db

Чтобы избежать инъекции SQL, не добавляйте параметр для запроса путем конкатенации значений, чтобы создать запрос, пожалуйста, обратитесь к: http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#query%28java.lang.String,%20java.lang.String[],%20java.lang.String,%20java.lang.String[],%20java.lang.String,%20java.lang.String,%20java.lang.String%29

Клемма безопасности: http://developer.android.com/training/articles/security-tips.html#ContentProviders

Как дата хранится в вашей таблице? Какой формат? Когда вы добавляете параметр в свой формат запроса, он должен быть одинаковым. Если вы хотите использовать ключевое слово BETWEEN, дата должна быть сохранена в этом формате: год-месяц-дата для сортировки по SQLite.

Update 1

Вы правильный формат даты изменения в гггг-мм-дд Вы параметры в запросе должны иметь одинаковый формат, конечно. Put запрос в переменной и зарегистрировать ее до того, как это:

String query = "SELECT * from TABLE WHERE DATE BETWEEN '"+ val1+"' AND '"+ val2+"' "; 
Log.d("MyQuery", query); 
Cursor c=database.rawQuery(query, null); 

Поиск в LogCat TAG «MyQuery» и пост значение запроса

+0

Я думаю, что это моя проблема, потому что у меня есть формат даты dd-mm-yyyy в моей таблице. –

+0

Я меняю формат даты, и все равно ничего –

+0

@AneteJonase, я обновляю свой ответ – LaurentY

1

Теперь замените код ниже и дайте мне знать, что вы получили в Журналы

Cursor cursor=database.rawQuery("SELECT * from TABLE WHERE DATE >='"+val1+ "' AND <= '"+val2+ "'", null); 

     if (cursor.moveToFirst()) { 
      do { 

       Log.i("cursor_Data",cursor.getString(cursor.getColumnIndex("Date"))); 

      } while (cursor.moveToNext()); 
     } 

Если выше не работает для вас, пожалуйста, разместите структуру TABLE?