나는 for 루프를 사용하여 다음과 같은 metod를 사용했지만 나에게 하나의 행만 돌려 주었다. 그래서 루프가 필요하다?SQLite를 사용하여 한 행만 반환하는 경우 루프가 필요합니까? (안드로이드 Dev)
은 즉 내 코드는 다음과 유사합니다
public String topSwimmerSponsor() {
Cursor c = ourDatabase.rawQuery("SELECT " + KEY_SWIMMERLAPS + " * "
+ KEY_SPONSOR + " AS result, " + KEY_NAME + " FROM "
+ DATABASE_TABLE + " ORDER BY result DESC limit 1", null);
String result = "";
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
result = result + c.getString(1) + "\n";
}
return result;
}
그러나 나는 다음에 변경을 시도하고있다 :
그러나public String topSwimmerSponsor() {
Cursor c = ourDatabase.rawQuery("SELECT " + KEY_SWIMMERLAPS + " * "
+ KEY_SPONSOR + " AS result, " + KEY_NAME + " FROM "
+ DATABASE_TABLE + " ORDER BY result DESC limit 1", null);
String result = "";
result = result + c.getString(1) + "\n";
return result;
}
내 응용 프로그램 충돌. 이것을 구현하는 올바른 방법은 무엇입니까? 감사.
if(c.moveToFirst())
return c.getString(1) + "\n";
오류가 발생하면 메서드는 문자열 유형을 반환해야한다고 말합니다. – Sheldon
if (c.moveToFirst()) return c.getString (1) + "\ n"; else ""을 (를) 반환하십시오. – Thomas
메소드 끝 부분에'return null;'을 넣습니다. –