2016-07-12 4 views
0

저는 매일 데이터를 저장할 필요가있는 곳에서 앱을 만들고 있습니다. 필터를 쉽게 필터링 할 수 있다면 도움이 될 것이므로 SQLite 데이터베이스에 대해 배우고 자습서를 찾았습니다), 그 뒤를 따르고 결국 같은 결과를 얻습니다. 빈 커서. 새 행을 삽입 할SQLite 쿼리는 항상 빈 커서를 반환합니다.

enter public Day getDay(int year, int month, int day) { 
    Day ret = null; 

    SQLiteDatabase db = this.getReadableDatabase(); 
    Cursor c = db.rawQuery("SELECT '*' FROM '" + TABLE_DAYS + "'", null); 
    Log.d("DATA", "entries found: " + c.getCount()); 
    c.close(); 
    db.close(); 
    return ret; 
} 

방법은 예상 수를 반환하지만 이것은 단지 이후라고하더라도, 그것은 빈 커서를 반환으로 기능 할 것으로 보인다. 수정 사항을 찾지 않고 많은 자습서 및 게시물을 읽었습니다. 나는 metod .query (...)와 같은 결과를 시도했다. 사용

+0

' '*''? '*'를 의미합니까? – njzk2

답변

0

시도

Cursor c = db.rawQuery("SELECT '*' FROM '" + TABLE_DAYS + "'", null); 

Cursor c = db.rawQuery("SELECT * FROM "+ TABLE_DAYS ,null); 
0

에서 따옴표를 제거

0

db.rawQuery("SELECT * FROM " + TABLE_DAYS + "", null);SELECT * FROM

+0

서식을 고정 했으므로 다시 포맷 할 필요가 없습니다. –

+0

@Damian Kozlak 감사합니다. –

1

를 교체 그것은 위해 rawQuery() 대신에 query() 방법을 사용하여 가치가있을 수 있습니다 avo에 미래의 구문 오류 ID. 다음은 모든 행의 데이터를 반환하여 rawQuery()과 동일한 결과를 얻습니다.

Cursor c = db.query(TABLE_DAYS, null, null, null, null, null, null); 
c.getCount(); 
+0

예. SQL을 직접 작성하는 대신 항상이 메소드를 사용하십시오. – njzk2

0

다른 것을 어딘가에 나타 냈습니다. 잘못된 매개 변수가 데이터베이스를 만드는 방법에 전달되었습니다. 어쨌든 모든 답변을 주셔서 감사합니다.

관련 문제