2015-02-23 3 views
0

Я пытаюсь получить базу данных SQLite для работы на Android и задать несколько вопросов!Получение SQLite, работающего в Android и доступ к данным

Я поместил следующее в метод onCreate моего класса базы данных, который расширяет SQLiteOpenHelper.

db.execSQL("CREATE TABLE IF NOT EXISTS `challenge` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `date` TEXT)"); 

У меня есть следующий метод.

public void addChallenge(){ 

    SQLiteDatabase db = this.getWritableDatabase(); 

    Date cDate = new Date(); 
    String fDate = new SimpleDateFormat("yyyy-MM-dd").format(cDate); 

    ContentValues values = new ContentValues(); 
    values.put("date", fDate); 

    db.insert("challenge", null, values); 

} 

И следующее должно быть выполнено выше, чем указано выше.

public int getChallengeId(){ 

    SQLiteDatabase db = this.getWritableDatabase(); 

    Date cDate = new Date(); 
    String fDate = new SimpleDateFormat("yyyy-MM-dd").format(cDate); 

    String countQuery = "SELECT id FROM challenge WHERE date = " + fDate; 

    Cursor cursor = db.rawQuery(countQuery, null); 

    int challenge_id = 0; 

    if(cursor.moveToFirst()){ 
     challenge_id = cursor.getInt(0); 
    } 

    return challenge_id; 

} 

Моя проблема заключается в том, что вызов ID возвращается в 0.

Поэтому у меня есть несколько вопросов.

  • Где находится база данных, хранящаяся по умолчанию в Android?
  • Я правильно звоню?

код я использую, чтобы получить доступ к выше методов заключается в следующем

Database db_add = new Database(context); 
db_add.addChallenge(); 
db_add.close(); 

Database db_get = new Database(context); 
challenge_id = db_get.getChallengeId(); 
db_get.close(); 

Любые идеи? Спасибо.

+0

Я не могу увидеть вашу проблему прямо сейчас, но я советую вам использовать библиотеку отображения ORM вместо того чтобы работать с простым SQL – Nickolaus

ответ

2

Неверный запрос SQL.

2015-02-23 говорит базу данных, которую вы хотите вычесть число 2 и 23 из числа 2015.

Строки должны быть 'quoted'. Однако следует избегать такого форматирования проблемы с помощью параметров:

String countQuery = "SELECT id FROM challenge WHERE date = ?"; 
Cursor cursor = db.rawQuery(countQuery, new String[]{ fDate }); 
+0

Это, кажется, констатировали вопрос! Я предположил, что база данных не создается. Не могли бы вы дать мне указатель на то, где хранится база данных? Было бы неплохо ухватиться за это и открыть его! – sark9012

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